People for some reason seem to think that because they are buying a digital product or service, that the laws of purchase and receive do not apply. They expect a lifetime warranty and maintenance for free and expect any changes or updates to be included in the agreed upon price, at any time, for any amount of work, for the lifetime of the Internet. No matter what your service or product is, whether it's building a website, creating a logo, developing banners, or transferring a web account from one host to another, do NOT hand over control until you have received payment in full.
I fell victim to my lack of common sense trust not too long ago. A client wanted to pay me under the table (so to speak) to transfer their web site and email accounts from my company's hosting platform to their own hosting platform. I gave them a remarkable discount because I wanted them to be happy. Lets be honest, they weren't my favorite client to work with and they weren't happy with my company's services, so being on their own would make us all happy. The job was to transfer their website, database, and email accounts to a host they chose, out of a handful of recommended host providers. Easy enough.
Client purchased the hosting plan and gave me access to transfer everything. On my personal time, I spent a few hours transferring their website and database, and making sure the site was working perfectly. I then spent another hour or so creating all their email accounts (transferring wasn't available, unfortunately). They gave me access to their domain registrar account to update the nameservers and launch everything. I flipped the switch and checked the site after a couple hours (propagation time). Site working - awesome. Tested the emails: sending email - pass. Receiving email - pass. Nice! Everything is working. Alright client, you are complete. I accept PayPal Credit Card, or check. Provided my information, cool, we'll send out a check, and that was the last I heard from them.
After client demanded troubleshooting and additional work because their emails weren't going through, and after being advised they have to read what the error message says and follow the link provided by other people's spam filters, client (as usual) is angry that their email isn't working. Never mind the fact that it is working, they just have to pass other people's spam filters, which by the way, I cannot do anything about. That's what happens when you are on a shared hosting server sometimes. "Oh, can't you do this?" No, I am not maintaining your site or your host anymore. You didn't want that from us, and you aren't paying me for it. As Mike Monteiro says, F you, pay me. Oh, and still no payment.
Fast forward a year. Yes, a year. I finally get over my disgust and decide to send out one more email. Hey, by the way, I still never got paid after completing the work agreed upon. "Oh ok, here you go, it's in the mail." Yes, this time it finally was. And not a penny more than what I bent over for. At least we have officially parted ways, hopefully for good.
The moral of the story: Don't hand over the keys until you receive payment! Always have a written and signed contract stating every task that will be completed (transfer email accounts, verify working, transfer website, verify no errors, etc.) outlining when and how much will be paid, when final payment is due, and what will happen if final payment has not been received in a timely manner/by due date. Don't screw yourself!