Time may be money, but so is morale
We've all been there: One of our clients is asking for some feature that makes absolutely no sense, takes forever to produce, and leaves your code in a state of shambles.
The first page of results should contain 30 rows, the second 40, the third 200, the fourth should be a form asking for their credit card and social security information, and the rest of the pages should follow the formula I've outlined below (with noted exceptions).
You state your case, attempt to come at it from every other angle you can think of, and eventually give in. If you're like me, you say to yourself "well, it's their dime, and I'm getting paid by the hour."
I like to think of myself as a (very) amateur economist, so this is usually an attitude that would sooth my troubled soul. Who cares if the client wants me to jump through a few flaming hoops for a couple of hours, as long as their paying?
But that attitude ignores morale - and morale is super expensive. Fact is, you wouldn't jump through flaming hoops for $X/hr, or even $100X/hr. There are an almost infinite number of ways that you can make money, and probably a lot more money than you make right now. But you didn't choose to go into air traffic controlling, because you love to code (and you probably hate crashing planes).
Morale becomes even more important when you're in or in charge of a team. You might be able to convince yourself that this client is worth some back breaking for the long-run payoff, but how are you gonna make the hard sell to your coworkers?
The answer to all of this is that these clients just aren't worth it – they're sapping time and morale that would be better spent on your more reasonable ones.
It's been said before, but it bears repeating: It's OK to fire your clients.