I demand 25% of estimate before I start coding anything, and this is one of the first things I tell them.
I discuss payment terms upon completion, and I send them an itemized estimate (via email so we both have a record of it) of what they can expect to receive.
1. Registered Domain name (www.blahblah.com
2. Hosting/Email Setup (email@example.com, etc.)
3. Submission to search engines (yahoo, google, etc.)
4. 9 Pages (Home, About us, etc.)
Total Cost: $1500
25% pre-payment: $375
Due upon completion (net 30): $1125
Hosting billed quarterly @ $25/Month
Additional Development - $50/HR, Image Manipulation - $75 HR
I send this with the message that I will start development upon receiving the 25% payment and an indication that these terms are acceptable.
Not been screwed a single time since I started doing this.
Have also done the 2/10 or Net 30 deal, though mostly the money I make on the side is funny money for me.
I made a deal with the wife that I would do 90% or more of the work after she retired for the evening. Easy deal on smaller projects, but a bit of an issue on larger ones when I basically on have 2-3 hours at night to work on them. I generally don't take projects I suspect will go more than 30-35 hrs or so.
We still get to spend our evenings together and I make some pretty easy disposable income for things like TiVo, a laptop, finished my basement one year, a home theater projector, downpayment on a car, a vacation one year, and the occasional bump to the Roth IRA.
I generally clear from $2000 to $10000 a year doing this, though more often than not its closer to the $2000 figure. I have built up enough clients that I can generally make the $2000 just working with them which is fine by me. I meet one client quarterly because he wants to have beers at BW3's with me. The other clients all interact via email with me. I pretty much take no calls or meetings and work in my PJs while watching TV.
Best. Side-job. Evah.