We make websites and have frequently been in a situation where a site is finished, but the development is dragged on for another month because the client can't find the time to provide the site text or gallery images. Our policy is to take final payment at the very end, right before we put the site on their server. We're thinking of changing our policy to this:
The website with filler content must be completed entirely by a certain date. The client then has x days to provide us with actual content. If they don't, then we bill them for the total price of the site, send them the files, and tell them that once they provide us with content, we'll make the appropriate changes.
I would guess that people wouldn't be to comfortable with this though. Is there a different policy to take to ensure that we get paid at the correct time and that the client is comfortable with the process?
I think you're wise to negotiate staged payments up-front with your client.
However I don't think it's a good idea to delay invoicing by x days. As soon as you have met a milestone, you should bill for that.
If possible, spell out the milestones with your price, so there is no ambiguity. We use a combination of:
I would set it up that you get half when you finish and half when the images come in. That way, you get some cash and they now have incentive to get the images to you (since they paid for half the site).
Asking for the whole thing might be a little off putting but I see your point -- if they drag their feet, why should you suffer.