There's a caching proxy nameserver - I think it is called dproxy-nexgen.
You can run that on a box somewhere and have your other boxes use that for their nameserver.
In addition to requests for names, it also caches the contents of /etc/hosts - thus, in your /etc/hosts file you have
forbidden.domain 127.0.0.1
and when anyone request forbidden.domain the proxy nameserver will see it in its cache and serve 127.0.0.1 as the associated IP address.
That doesn't stop people from going to the IP address who KNOW the IP address though.
It does work as an effective add blocker though
You also can run an http proxy and set your firewall to only allow access through the proxy.
Then you can define forbidden sites through the proxy (and log where the wayward employees do their worktime surfing).