I used to recommend GoDaddy to people for domain names and hosting because their rates are very cheap and on top of that, coupon codes are usually available online, making purchases even cheaper. I have bought multiple .com domain names from them for about $7 each.
Initially, there were a couple of things I disliked about the company. First, they are always trying to upsell you something. When you sign up for a .com name, they also want you to buy .net, .biz, .info, and so on. They also want you to buy your domain for two years, not one (two years is their default setting). There are many more upselling options offered at the time of purchase as well, but these are too numerous to list here. Second, the website is a nightmare to navigate. It contains so many ads for other GoDaddy products that it's difficult to actually find the links to pages related to your account.
Now, I have a much more significant reason to dislike GoDaddy because of what they do when your domain name expires. I accidentally let my twopenniesearned.com and 2penniesearned.com domain names expire. I wasn't getting my gmail forwarded to my personal email account for a period of several months without realizing it. As a result, I missed all the renewal notices they sent me. This is completely my fault, and I take responsibility for that, but what happened next was pure bad will on the part of GoDaddy.
After the domain names expired, there was a grace period of about a two and a half weeks (fairly generous, I'll admit), and then my domain names went into a holding pattern. GoDaddy said that in order to get my domain names back, I would have to pay an $80 "redemption fee" for each one on top of the usual $10 annual domain name fee. I was still technically the owner of the domain names, but I could not renew them while logged into my account, and my websites no longer showed up when people went to those addresses.
Looked at another way, I suppose I am lucky that GoDaddy hung on to my domain name after it expired, giving me some extra time to straighten out my no-forwarded-email mess. If the name had simply expired, it might have been purchased automatically by some company's software that is in the business of buying expired domains and then trying to sell them back to the owners for many times what they paid for them. Of course, GoDaddy is engaging in a similar practice. They have found a way to take advantage of people who forget to renew their domain names by charging them an exorbitant ransom fee to get them back. Now I know how they are able to charge so little for the rest of their products.
I called and asked if they could do anything about the fee; they couldn't, of course. Admittedly, I hate conflict, and a more contentious person than I perhaps could have gotten the fee dropped. I also did some research online and found that GoDaddy is not the only company who engages in this sort of practice; in fact, their ransom fee is lower than some others I read about. I was able to feel less upset about the whole situation when I considered that charging a "reconnection fee" is a common practice. Phone companies, the cable company, and utility companies also do this. Ultimately, I paid the fee, but they did let me use a coupon code for 10% off, which I felt was fairly lucky for me given the circumstances.
Based on this incident, I recommend avoiding GoDaddy. I didn't really like them to begin with, and this incident was the straw the broke the camel's back. I don't know much about how other companies handle similar situations; perhaps GoDaddy actually offers less of a raw deal than anyone else. Also, during this process, I was grateful that my site was hosted by Blogger, where hosting is free and does not expire. So though I'm sure many people were unable to visit my site for a few days while I straightened out the mess, at least my site was still up, and those who read via feed or knew the blogspot address could still access it.
If you'd like to avoid problems like this yourself, my recommendation is to set your domains to renew automatically and keep your credit card information up-to-date. Another option is to buy your domain for several years at a time instead of just one year. I wish there were a lifetime domain name purchase option, but I can see how that could get complicated.
A friend of mine who is considerably more knowledgeable about all things computer-related than I am recommends a company called 1and1 for domain names and hosting. He says they have excellent customer support. I've checked out their user interface, and it's fantastically simple. They are cheap, too. So if you're looking for an alternative, you might want to go there.
I wish that all of the trickery involving domain names (this is merely one example) were illegal, but I don't have any good ideas on how to legislate it. We are still in what will probably be looked back on as the wild, wild west days of the internet, where Amazon.com didn't charge sales tax and whatnot.
If you have a snarky comment about how this whole situation is my fault, keep it to yourself. I'm trying to help people.