I suffer from the same problem from time to time. I do ask for a considerable deposit up front, and I often break up the remaining balance into several payments to be made as the work progresses to a particular point.
Then, in order to get that final payment, you can then hold back on some information that the client requires, like the login information to the hosting control panel, or instructions on how to edit their blog, etc...
If you are creative and tactful, most of the time things work out.