I was presented with the same problem earlier this year. I work for a larger company that wanted to create a smaller sister company.
As the sister company was only very small (one site, two PCs and 5 staff) it didn't make sense from a financial point of view to setup another DC, Terminal server, Exchange server etc.
To get around this I setup new OUs for the users, computers and security groups within AD. Group policies were copied and linked to the new OUs with changes made that were relevant to the new company such as wallpaper and desktop shortcuts etc. A new folder was created on the file server which acts as the mapped drive for the new company with deny permissions set for everyone else to prevent access. (Users from the primary company were given access via item level targeting). One thing to note is that default scope will always be authenticated users so a new domain users Security group was setup for the second company for top level group policy and file access permissions.
Exchange needed a bit more work but wasn't too difficult. A new address book policy was created for the new company via Powershell and at the same time new online and offline address lists were created containing only the users belonging to company number two. New users were linked to these address lists during setup and also via a custom attribute unique to these users.
Whilst the above may not seem like best practice it is essentially the same as creating multiple departments within the same domain that do not interact with each other.