In my experience, most clients fall behind. I think its partly due to them having enough of their own work to do and not realizing that they have to contribute to the project (even though its in the proposal).
When proposing a new project, I always make sure to include a estimated timeline in which both of us must adhere too. That way you can refer them to this when they start falling behind and have some leverage to get them moving.
My contract states that if the client delays the project, payments are still due within the proposed timeline. Also, the time the client delays is then tacked on to the end of the project. I make it clear that if the client starts to lag, my other work goes in front of them.
Most of the time its just that the client needs a little direction and a bit of hand holding. You have to remember that they're busy running their business (or doing their job) and the website is just another thing on their to do list. Many times they just need a reminder that you're waiting on something from them. A quick email usually does the trick.
I've never had to force a payment on a client but I am glad I take a deposit. I've had 2 clients skip out a few weeks into the project. I typically bill most projects in 3rds... Deposit, progress invoice and final payment. Never do more work that what you've currently been paid for.
Just a quick additional note about deposits and contracts (although I'm sure its been covered a million times here)... Always, always, always require a contract. Even if you're not going to require a deposit, get a signed contract. If the potential client won't sign a contract or pay a deposit, they likely don't plan on paying or aren't serious about the project. I've referred a few leads to another freelance friend of mine that doesn't "believe" in contracts and more often that not, they end up being dead-beat clients.