Chris Shaw, owner of SQL Oncall, recently had an issue in his business. Chris provides DBA services on a remote basis to companies that need supplemental help or don't want to hire a DBA. It's a good business and I think Chris works hard to be fair to people. However one of his client's didn't want to pay and he talks about it on his blog.
One of the things I used to hate when I did one-off consulting, was the issues with AR, Accounts Receivables. In other words, getting people to pay you. The AP, Accounts Payable, is also a hassle, but that's on you, and it's easier to handle since you're sending out checks for other stuff, easier to pay bills for me.
However there are always people that don't see the value, or don't think they have gotten great value from your service and don't want to pay. We all experience this, often with doctors who we see for 3 minutes with a $20 co-pay (and a $200 insurance charge) or mechanic that wants $60/hr for all work, whether highly skilled like milling pistons, or low level like changing oil.
When you're a larger company, you can send this stuff to collections, and get paid some of what you're owed. You also have a staff (or a contract with a staff) to hassle people to pay, send out notices, etc. When you're one guy or gal, it's a hassle, it task switches you, you have to keep track of it, and you hate it.
At least I did.
I think Chris handled this well, perhaps better than I would have. Likely if I'd gotten paid, I'd have dropped the customer immediately. Once someone decides not to pay, they likely will do it again, though I'll acknowledge that you would have to see how they explained their thoughts.
I don't think IT people always earn their full bill rate for every hour, but I think that's part of issues with society in general. People don't work at a constant level or rate. However the good ones, the ones worth trusting will alter their billing, reduce hours or change the rates to be sure they've delivered good value not only for themselves, but for you as well.