Many web hosting services like DrupalGardens.com and WordPress.com allow you to use your own domain. However, the set up procedure for many of them means that it is impossible to use an existing domain without some kind of downtime.
The problem is that many insist you point your DNS records at them, then set up the options for the custom domain. They have checks that won’t allow you to do it the other way round. This means that in the time between you changing your DNS records and setting up your custom domain, you have unavoidable downtime.
I’ve previously ranted about WordPress.com, which wont let you continue until you point your name servers at it. This means that every service on that domain, including those that have nothing to do with websites and are considered vital, like, oh, email, will have unavoidable downtime.
Last week I moved a site into DrupalGardens.com, and they insist that a CNAME record exists before you continue. Which means some unavoidable downtime for your website, but at least your email survives.
I guess it’s a result of lazy design; after all you should really check the DNS is set up correctly and if you do it when the user sets up the domain it’s a nice simple workflow for all concerned.
So who gets this right? Google Apps. You can set up an Google App control panel, add all your user accounts and aliases, wait for the users to log in, run training sessions (if needed) and check they are happy and then, and only then, must you change your MX records. Which means that you can move an existing domain into Google Apps with no disruption to your incoming email at all. Brilliant!