I think by demanding a deposit, it also reassures a customer that you are serious about what you do and that you value your own time. I've never had any problem, maybe the GP find this reassuring who knows?
I have never had or experienced a problem with a job pulling out, but I may start taking deposits on jobs over 2 days worth of labour... secures me from holes in the diary I guess .