I don't get my customers to sign a contract but I do state what my conditions are.
So for instance if they tell they only want a one off, then that is no problem, but if they say they want a regular cleaner but only have it done once and say I will call you again, well in my eyes they have cancelled and I have a simple cancelation policy, when you cancel you cancel for life.
I also charge double on 1st cleans which is the same price as one-offs so they don't need to lie, but you still get some who do.
If you are going to have a contract you have to take them to court if they breach it, otherwise its a useless piece of paper.