I agree w/ you, but how exactly do you 'fire' customers? Refusing to sell them the product/service in question?
Just just either ask them politely to take their business elsewhere or you charge them a rate so high that it will accomplish the same end. If you have control over pricing you can give them a "go away quote" which basically charges a ridiculous rate. If they pay, fine but then at least you are being compensated adequately. We have a pain in the ass customer at my business and we simply keep raising rates on them to compensate us for the time we have to spend. Sometimes though no amount of money is worth the problems some customers cause.
I have on two occasions however told a customer in no uncertain terms that due to their behavior we no longer cared to do business with them. One was sexually harassing one of my employees and on the other occasion they had someone who simply was rude well above and beyond what his business was worth to us.