I've found that I get dramatically better clients by requiring 50% payment up-front, and then invoicing weekly. People who balk at the 50% terms are likely to be problem customers, and are best avoided anyway. The weekly invoicing helps new clients understand how much software costs, and prevents sticker shock weeks after the project has begun. Once I have an established relationship with a client that I trust, I'm happy to relax the terms for everyone's benefit.