Just as a note for using DNS/Hosts file that you will need to consider. For instance, if a user is an admin of their box, they can modify the hosts files if they want to bypass the restriction. In any case, if this is what you are considering,
I would simply recommend that you use DNS instead of the HOSTS file. The reason is that DNS is a centralized solution. When you update DNS, you are essentially updating name resolution for all of your clients. otherwise, implementing via
HOSTS file would require you to redeploy the updated file. I have implemented this various times, but for a different reason. For instance, this works well when fighting malware. If a social engineering attack is made against your users by
sending them an email with a malicious URL, they may click on the link. The client will then resolve the URL by querying DNS. If you create "black-hole" zones and point these zones to the loopback address (127.0.0.1), the browser will not connect
the user to the malicious web site.
However, using this method to prevent your users from access websites is also very easy to bypass. For instance, a user (that's an admin of their box) can just configure their client to use a public DNS server (8.8.8.8) as an example. You can
prevent them from using other DNS servers, but you'll need to configure your perimiter firewall to prevent this (which is my recommendation of a proxy/firewall solution).
The Microsoft option is good, and very cost effective, and it integrates with other MS products. Sounds like a good fit for your organization. Anything other than proxy/firewall can easily be worked around by users.