As you said, the relationship with your customers is what defines what you can't or can do... but I do encourage for a deposit up front... it may send the wrong message if you don't give any explanation but in my very humble experience, it saves you from customers that delay forever and ever and ever...because they didn't pay anything and, after all, it didn't hurt their pockets... and since they really don't know how their businesses will be affected, they couldn't care less about the whole thing once the exciment of the first month has passed.
It also saves you from those that leave and give no signal of existance once you've done your job and never pay. At least, you got something from them! :lol:
50% sounds harsh. I do 35% at start, 35% at the end, 30% one month after the delivery, so they can test the site properly