I agree with you, Cleanexp. "lose on my terms" is a good way to put it. I, too, considered a cancellation fee and decided not to do this. If I see that a particular customer has a tendency to cancel too often, I first talk with them about it and try to find out why they do it. And if it continues, I disengage myself, because I dont need t work for people I cannot deal with. Nor can I afford to get cancelled often!
Keeping good customers can sometimes be hard to do. And I have made my share of mistakes. I try to learn from them. A good customer is worth working with, even if sometimes a situation occurs where they have to cancel.