But then, there are always exceptions, I have a contractor and his team working for me, for almost 10 months. We started off with 0% advance and still work that way, with the 32nd phase being done right now. It has been a great partnership - he has been very professional. It wasn't that his readiness to agree to 0% advance was the only reason I hired him. I interviewed him for a few hours spread over a few days to get to know him, make sure that he was professional and is what he says he is.
On my part, I also used to take specific measures to ensure that he didn't feel too exposed in his recievables from me. I used to break up bigger features into smaller phases and if any phase got stuck due to technical obstacles, used to schedule smaller payments while stil pegging the final payment with the completion of the phase. I'd rather he focus on getting the work done than worry about getting his payment on time.