I'm glad to actually have a discussion going...
I actually take deposits so thread was named wrong in a sense... since I don't take credit cards.. I probably wouldn't even do the cancellation fee because I also wouldn't like seeing a bill later for nothing... but when you already give a check/cash deposit, you know that money is gone and you should make the appointment..
Danase, why does it matter how often I work in a week or how established the business is? If I have a scheduled appointment with someone, it means they've agreed to pay me for that time in a week, or a month or whatever, so whether I have 5 details coming up over the next 3 days or whether I'll be sleeping shouldn't be considered at all...
The reason I started doing this is so people will be serious about keeping the appointment... as Jakerooni said, people start keeping their appointments if they've given a deposit, or know they'll be charged a fee.
Obviously if some unforseen stuff comes up, even on the day of, deposits are just returned. 99% of my clients have no problem at all paying the deposit because they called me for a reason and scheduled a detail for a reason, they respect my time and value my work, and those are the type of clients I want.