optimum configuration for AD and exchange 2010
The best-practice configuration would indeed be having AD and Exchange on different physical servers, and also have at least two domain controllers, because losing your only one is definitely something you don't want to happen. But it's commonly acknowledged that having a couple servers there only to act as domain controllers can be a bit too much for a small business (particularly if you only have them and Exchange).
The virtualization route is a good option here; but with this approch, it's definitely not recommended to have services running on the host system: that should be dedicated exclusively to hypervisor duties. Just create two VMs, one for AD and the other one for Exchange, and you should be ok (provided the server has enough CPU/RAM/storage, of course).
Oh, and do yourself a favour: go with Windows Server 2008 R2 SP1; Hyper-V is much better there than it was in Windows Server 2008. And of course, running the latest OS release is also recommended for your virtual servers.
You can, of course, also run AD and Exchange on one single physical server. But virtualization is a lot cleaner, and also more flexible should you later need to add other services to your network.