In the early days when we were on dialup, in order to share the internet connection we ran a program called Wingate on the PC that acted as a gateway, and on all the clients. Wingate had a file cache that you could set the size of, and we could also add URLs to an exception list to ensure you got always got fresh copies from websites that required it. The big advantage of the cache (apart from faster page loads) was that updates for all the PC's on the network weren't downloaded multiple times.
Now we run Windows XP internet connection sharing and it doesn't seem to have this. Is there a way of bolting a file cache onto a Windows ICS gateway?