Okay, I've had to change web hosts half a dozen times in last year and I've noticed a pattern. It's a very clear and simple pattern, actually a series of behaviors on part of web hosting companies. These behaviors cause these companies to lose customers and gain poor reputations.
To sum it all up in a single word: ethics. Web hosts need to act ethically. As long as they are ethical towards their business and customers, they thrive. When they become unethical, they will fail.
What are web hosting company ethics? This is a code which all hosting companies need to follow if they want to stay in business for long term.
The most important goal is up-time - Almost anything can be forgiven as long as sites are up and running, as close to 100% of time as possible. Every feature provided by a hosting company needs to be working and working properly. A small amount of downtime (an hour or two in a month long period) is acceptable, but more than that is not.
Every time I've had to change web hosts, this was base reason. Unexplained and unexpected downtime. Oh, there were many excuses and many reasons which I'm sure were perfectly valid. But basic reason why I create and maintain a web site is so people can see it - and they cannot see it if site is down.
To make it even worse, sites which are down for a significant length of time have side effects. Webrings owners often check for broken rings using automated code - down sites will trigger suspensions and even deletions. Search engines tend to drop sites which are down too often or for too long a period of time. And, of course, visitors may remove your site from their bookmarks, thinking you have closed it or moved on.
The second most important goal is performance - I understand that you want to jam as many sites on a single server as you can. This is how you maximize your profits. Please understand that all of web sites which you host must perform well. So don't overload your servers.
Stay in communication - We all know that things happen. Sometimes servers do crash and once in a while they require maintenance. Let your customers know about important events. If you are concerned that they might consider it spam, give your customers option to receive updates if they desire.
I had one host (Hostrocket) which performed, in my opinion, one of most hostile acts that I have ever seen against a paying customer. I had a CGI script on my site which logged each 404 error in a text file. Normally this script was harmless and used little CPU. Unfortunately, with new breed of worms striking internet, 404 errors went way up and script began using large amounts of processor.
One day I tried to reach my site and didn't get my friendly front page. I got a "forbidden" error. I freaked out and sent off a quick email to web host support group. I didn't receive a response. Not a word (and it was only early afternoon). I sent another, then another. Nothing. Finally, 18 frantic hours later, I received a note that my site was closed down because of script.
The number of four letter words that spewed from my mouth that day would have turned a street girl's face red. I was so angry - not because they closed my site, but because these idiots (again, Hostrocket) didn't tell me what they had done. Because of that, I wasted almost an entire day trying to figure out what was wrong.
What I would have done had I been technical person in their company is simple. Just disable script and send off an email to web site owner explaining why and telling him not to do it again. If owner ran script again, then shut down site (and, of course, send another email).