In the past I’ve blogged about building a hosted Exchange 2010 SP2 environment. Basically you have to prepare Active Directory, create a hosting container where all customer containers (also referred to as organizations, not to mess up with an Exchange organization) are located, secure the OU’s etc. Also you have to create Address Lists, Address Book Policies, Offline Address Books (do not forget to secure these to prevent unwanted downloads) and all this in a reliable and consistent manner.
It is certainly doable with a lot of scripting and HTML knowledge (been there, done that) but the overall recommendation is to use a Control Panel vendor. You can find an overview on the Microsoft website: http://technet.microsoft.com/en-us/exchange/hh563895.aspx
Using a Control Panel
There are a number of vendors, each having their own pros and cons but all work according to the same principle using a provisioning engine. This provisioning engine is talking to all services in your environment like Active Directory, Exchange, Lync or Sharepoint. It is also possible to add even more services like CRM, Hyper-V, online backup or Azure.