Question: Hello I have a website that I would like to keep online no matter what for that purpose I don't mind buying multiple webhosting packages. Its a small website in terms of size but not in terms of client access and employee email accounts. I would like to achieve the following:

1) Add the DNS records of these multiple providers to one domain name, so if the on providers servers go down it can automatically use the next appropriate server.

2) Emails can be replicated across all three servers, I don't mind purchasing webhosting accounts with the same contol panel if I have to achieve the same.

Answer: 
Assuming your site content is fairly static (not a shopping cart or similar) you can do this using your DNS server entries on the domain. You would purchase hosting from several providers (I'll use `acme.com` and `example.com` as the providers). Each provider should provide a list of the DNS servers to use while registering your domain. It may look something like this:

1. NS1.ACME.COM
2. NS2.ACME.COM
3. NS1.EXAMPLE.COM
4. NS2.EXAMPLE.COM

You enter all 4 of these DNS servers in when you register your domain (or in the editing of your domain properties). As a result, if `acme.com`'s DNS servers go down, then `example.com`'s servers will take over. You would have to set up 2 accounts (one for each hosting company) for your email users, however. But this should be fairly transparent once it is set up.

This is a DNS-level solution for your problem, but I think your problem is more complex than simple DNS tricks will solve for you.
As to email, look at moving them to Google Apps and Gmail. Very high uptime, always accessible via POP/IMAP, free, and large amount of storage.

<http://www.google.com/apps/intl/en/group/index.html>

All you have to do is point the DNS to Google server's (the set up process walks you through it).