First let me say that I like 1and1. I have hosted all my websites with 1and1 for several years now and have had only minor issues.
When I first signed up with 1and1 I created 2 separate packages, they were both associated with the same account. One for my personal sites and one for all of Camp Dixie’s sites. At the time it seemed like it might be important to have some separation between Camp Dixie’s official sites like CampDixie.org and CampDixie.net that Camp Dixie owned and unconnected or unofficial sites like OpenSourceList.org and CampDixieAlumni.org that I owned.
Eventually I decided that I could still have that seperation with out having sperate hosting packages so I decided to move all the domains to one package.
This is where it gets stupid.
If I were transferring a domain, say JasonAirlie.com from one web host to another, I could leave the hosting active at the old host and start it at the new. As the DNS changes for JasonAirlie.com propagated some people would see the site at the old host, some at the new host. There would be no downtime, email would not bounce, search engines would have no problem finding my site and the transition would be relatively painless.
Since both domains are hosted at 1and1, under the same account but separate packages, to move a site from one package to another I would have to delete the domain from one hosting package, wait for the change to become final, 1-2 days, and then recreate the domain on the other package. During all that, my website would be inaccessible and email would bounce. Staying with 1and1 would be more painful than moving to another web host. The reason for this is obviously a technical limitation of their system. However allowing this limitation to remain gives customers a large incentive to take their business elsewhere.
So I will be slowly moving all my domains to Dreamhost.