I have full contracts before I do any work before a job... You live and learn.
I pretty much host all of my clients sites that I design, if I dont receive full payment within 30 days of a due invoice, I give them 30 days extra to at least make payment arrangements, if they fail to comply, I take down their site and all the files until payment is paid... Ever since I put this into effect, I have gotten every payment. It's really built on trust, I can pretty much tell right away which kind of people are going to be a pain in the ass. And I jack the price up, when I sence these types of people as well.
Good Luck!