|Just another Perl shrine|
I guess the answer is, it depends. :)
It depends on what the client's most comfortable with. Certainly the ideal (in my mind) would be your first choice, where you and the client agree on a project and a payment schedule, and all they do is pull out their cheque book at appropriate times and after suitably successful demonstrations.
Your second and third choices are lower on the totem pole: you are Some Guy With Needed Expertise that's either working on the client project at home or at their office.
It also depends on what associates you can draw into the mix. If you have a good network and can pull in the required experts to get a job done, even meet en masse with the client, great -- that's your first choice again, even if everyone's a contractor. A virtual corporation is fine as long as the client is happy and everyone gets paid.
And now a brief tangent: My cousin's father, a retired mechanical engineer, once told me something very profound. His speciality was researching patents, and at one point he was working freelance with one client exclusively. He woke up one day and realized that with just one client, he had all of his eggs in one basket.
So he started diversifying, getting more clients, making contacts, and when that 'major client' suddenly stopped providing him with work, he barely felt it.
I tried to learn from this important lesson during the Internet boom when I was self-employed, but working with just one client. It quickly became apparent that I didn't have a clue how to market my services as a web backend developer, so I joined up with a marketing partner. This worked fine until he messed up our first project and refused to pay me my cut. I managed to get payment for me and my subs directly from the customer, but that was a very painful lesson.
To wrap up, I think the higher level a relationship you can have with your customer, the better.