As suggested by Arcath, Squid is the de factor standard these days for open source caching proxies. Various add-on packages allow content filtering and several programs have been make to do fancy reporting against Squid's logs.
A good lightweight caching proxy is Polipo. It's not the fanciest thing in the world, but it's small, fast, and should work well enough for a handful of users.
Concerning your second question, Squid's ACL functions can be used for caching only certain sites. I'm not sure why you'd go through the trouble of setting up a proxy but not want the clients to take full advantage of it, though."