hmm..
Squid and NAT can be used together..
first you understand a brief about both..
NAT = Network Address Translation
Here in that we set your Linux box to act as gatway to your local computer so that they can access internet through it. In this way your clients sends the request to internet which are passed to server which changed them according so that they can be sent over internet, now reply from internet is returned, at this point our server again do changes accordingly and then foward that to local client. What it actually do is network address translation (when sending and when recieiving packets from internet)
Squid = A proxy server for LINUX
Here in this you set a proxy on LINUX on a specific port (say port 8000) now when client request for packet from internet on port 8000 of that box then it simply recieves the request and then fectches that from internet and then return to that box, so address of packet is not altered. It means if u request a PC running proxy on it.. say 192.168.0.1 on port 8000 then u can connect to internet by specifying server as 192.168.0.1 and port 8000 in your web browser.
BTW.. squid also caches the pages.. ie store them on local computer so that next they are required will be delivered through cache so faster browsing .