How you structure up front payment is always up to you. We've always had a setup fee, typically a few thousand dollars, which is due before any work starts. However, there has been one single thing which has kept our revenue flowing month after month for years: Freshbooks.com
I seriously love that site. We use it for:
1. Making estimates
2. Tracking hours worked against estimates
3. Invoicing based on hours and services rendered
4. Making sure the client indeed noticed the invoice - it says "viewed" when you send by email and they actually log in and view, so you can call bullshit when they say "I didn't get it yet!" :D
5. Automatically adding late fees to invoices. We charge a relatively nasty fee each month for a late invoice and it automatically adds it to each one.
6. Tracking payment; clients get notified via email when payment has been received, something many have commented on as a great feature.
Quickbooks and other tools are all well and good, but imho I think Freshbooks pretty much handles 90% of what you need to be successful independently :)
Side question, what (in percentage terms) do you call a 'nasty fee'?