Ok, you mention squid.
I know exactly what your problem is. I'm going to explain it to you but you'll think I'm wrong because you can access www.
Anyway, here it is.
Your masqued computers cannot resolve names to IP addresses. You've set up all of them to use the squid proxy by IP address, which is what's holding this fragile conglomeration together.
Client hands a request to squid using name. Client doesn't know or care what the IP is because it's using a proxy. Squid has working dns so it fetches the page and returns it properly.
Client tries pop3 and it fails because it doesn't have any dns servers and pop3 is only being forwarded, not proxied.
You need to set proper DNS servers on all of your clients. Unfortunately for you Squid is giving you the illusion that it works so you'll probably ignore me.
Now, why don't you go back to my first post and read it again and when the lightbulb shines above your head you'll know that I answered your question the first time. If the light doesn't shine repeat this step until it does.