Some time there are clients you have worked with and you are pretty sure they are not going to cheat. Also another case is escrow which also nearly eliminate non-payment risk.
Are there any good reason in such cases to stick with principle of asking for upfront?