Regarding the Load Balancing, I find ipvsadm to be a very good package. I'm not well-versed with squid, but for 10,000 users, I should image that hardware is not sufficient (especially if they're all requesting pages at the same time?) My immediate hunch would be to set up a virtualised squid proxy, and then copy that across to be hosted on multiple servers. Providing it's set up in a scalable fashion (maybe NFS share for config/rules) across the entire cluster - you should be able to have a very scalable solution.
Squid supports cache peering, cache hierarchies, and multicast ICP. I'd setup Squid peers.