I agree with VG that you should not be put in the position of Banker for a potential client. But what being Banker means must be dependent on norms within in the community of whatever-you-do. A 50% inception payment, with balance due at the end of the project (or, if it's a long project, 2 or 3 payments tied to project milestones) is standard practice for me and for most of the professional practitioners with whom I work.*
I deal with problem clients by adding a late payment fee to invoices that remain open after 30 days. (This practice works best if your contract says you'll do it.) You might consider
- increasing your fee slightly to accommodate your greater risk
- asking the client to place the funds in escrow, which would let you know the money was there)
- ask the client to give you a check for the outstanding amount, or a little more. If at the agreed time he doesn't pay up, you cash this. If it bounces ...it's considered fraud.
- or, of course, you could just say, "sorry, I'm not in a position to do this right now."
*In fact, if someone told me I had to pay in full up front I'd probably look for another provider. As the consumer, I'd have no leverage once I'd paid in full and if I had questions or problems the provider could easily ignore me. (It's happened.)