I need opinions so I can convince my client that what he wants is the
wrong thing.
Opinions seldom change anyone else's opinions. Occasionally, rational
arguments might. More often, you need arguments that directly relate to
the other person's interests and values.
There is a sign up form, and if the user has a business
card from the referring agent, then the person should put the agent's id
number in the form.
Sounds like a common business requirement.
I think that information should be put at the end of the form, not the
beginning.
Sounds like common sense.
I think that asking for a referring agent id might be
confusing, especially if the user does not have an agent's business card.
But, my client says that the agents want that field first.
That's understandable because that information matters to him. There are
two plausible explanations to his position: People think that what comes
first, matters most. (A common prejudice/fallacy/assumption.) And he
thinks that if it comes last, people will too often omit it, because
they have already provided some data and don't want to spend time with
anything extra. This is also the risk with any indication that says that
this field, unlike the two other fields, is not obligatory.
So I would say that it is a business decision. If the client thinks that
it is so important to avoid lack of referring agent information that he
can afford some lost sign ups, his requirement is not irrational.
Normally, of course, obligatory fields should come first, clearly
indicated as required and made required with HTML5 attribute and/or
JavaScript (in addition to server-side checks of course), and optional
fields should appear as noticeably optional (e.g., by the lack of an "*"
that indicates required field). But business considerations may require
deviation from normal principles.
As a compromise, you could suggest that the referring agent be placed
last and marked as optional, but so that if the user tries to submit the
form without filling that field, a polite prompt asks him whether he has
such information to provide (and lets him proceed without providing it,
but requires a non-default button to be clicked for that). Ideally, this
prompt should suggest why the information should be provided, when
available, from the user's point of view, i.e. what the user gains by
giving it. (Often, there is no such reason, so don't try too hard to
provide one.)