This is a common case for freelancers. Have you ever been in a situation wherein your client fails and refuses to pay for your rendered service? Yes, there are preventive measures that freelancers could do to avoid such cases but what if you're already there in that situation? What will you do? The client won't respond to your messages and queries and would refuse to pay for his/her accountability.
If you make a reputation for your self you can get money up front for the job. Their is also a few tricks that freelancers use like keeping certain files that the client will need to run their website or take to the printer. I have had a few clients run off with proofs then come back when the realize the printer cannot use them or clients lock me out of hosting then realize 1/2 of the website is not there and come back and pay me.
- ALWAYS have a contract. - ALWAYS require a percentage or down payment up front. Remember, consumers have been programmed since the beginning of time to pay before you get. Getting a percentage should NOT be a problem. - ALWAYS demo product on YOUR server or use screenshots. Once the product is finalized require final payment before install. IF installed before payment always protect yourself with some sort of "backdoor" or method to disable if payment isn't made.