Im with seen.to, progress payments have been a good way to get around this. Simply take a deposit, then a payment upon 50% or 75% completion (design work and changes). Then your not out money if the client drags their feet getting you content. You can keep up with the emails and phone calls just as reminders but can move on to other projects. And then when the client gets all their content in order, take the 2 or 3 days and throw all the content into the design and code it and call it complete. Then get the rest of your money. And all of that can be in the contract they sign, and they know upfront that they will be paying two or three times. It works well and i have had a lot less stress with this issue since we started doing it here around here.