Re: Lets be honest
I’ve used DCs in a Virtualised environment, DHCP and DNS and it has been ok. I have used Sharepoint in a virtualised environment with separate SQL server and it has been an acceptable speed for practicing but was far too slow for production. Again, high I/O as SQL contains the data.
DHCP and DNS are probably ideal. DCs are good as a fail over. If you had to, you could give them FSMO roles in an emergency.
You may consider virtualisation of software for client applications.
You could always create a virtalised environment and test using Virtual Server. It’s a free way of testing.
I don’t know whether you have attended any MCSE courses or other Microsoft courses for that case, they often use a virtualised environment for the practical work.