hey Wonderboy: I appreciate it that you at least put in the effort to read & try to understand this stuff. It really frustrates me when people have to be spoon fed
The problem actually lies with our ISP's DNS servers. I would actually really want to know WHY they aren't giving us the local IP addresses!
When you try to access a URL, your PC has to query the DNS server for the IP address associated with the hostname (eg. 196.23.168.147 is associated with
www.l.google.com) before it can actually connect to the server. Connections are made to the IP address and not to the hostname (eg.
www.l.google.com is considered a hostname).
Here's a full example:
Say for instance you want to access
http://mail.google.com/
Then your PC has to get the IP address associated with mail.google.com, so it then sends a request to the DNS server, which then replies with the associated IP address.
Once your PC received the DNS response, its caching the DNS entry so that it doesn't have to query the DNS server again, unless the DNS entry in the cache expired. All DNS entries have a TTL (time to live) which states how long they are valid.
Now that your PC has the IP address for that hostname, it can actually establish the TCP/IP connection to that server.
If you've modified your hosts file, then instead of querying the DNS server for the IP address, it just looks up the IP address in the hosts file instead. The only downside is that you have to include the exact hostname in the hosts file and not a hostname with wildcards or as a regular expression

This is why I suggested that you host a DNS server instead, since the BIND9 DNS server support wildcards
Update:
Here's the thread where I mentioned both the hosts file modification (at first) and then running your own DNS server:
http://mybroadband.co.za/vb/showthread.php/242316-Forcing-Google-Services-to-local-(RSA)-IP-address
Just take note that I haven't had the time to force the Facebook stuff yet, but that you can do quite easily with modifying the hosts file, since Facebook is using only a few hostnames, unlike Google.