Just thought I'd bump this to add a few other possibilities if you have a Linux server or can install Cygwin. Either way, you'll need an SSH client on the machine you wish to use. On Windows, you can get PuTTY, but I can't give instructions on setting it up.
First off is the simple, straight-forward SOCKS proxy over an SSH tunnel. Basically, SOCKS is a standardized proxying protocol. TCP packets go in, get sent over the proxy (in this case, it's a self-hosted SSH tunnel), and come out the other end. It's also useful for setting up a temporary, secure VPN of sorts.
If you have a pure SSH client, you can do this:
The -D says "listen on this port" and the -C says "compress everything". This will SSH into
servername and setup a SOCKS proxy on the local machine on port 8080 (which is a good standard).
To use the proxy in Firefox, you can either use the built-in proxy settings or install FoxyProxy and add it as a SOCKS proxy (ensure all other fields are blank).
Now, if SSH is blocked (or if everything but DNS is blocked), we have another trick we can pull: Run SSH over compliant DNS requests. I have an explanation on how to do this
on my blog. Beyond the DNS tunneling, it's the same as above.
What's great about using an SSH tunnel proxy is that:
1) You only need to have SSH not be blocked - and it shouldn't be, even in some of the strictest environments.
2) Everything is secured (or at least encrypted) as it goes through, so there won't be an eavesdropping.
3) You can forward name lookups and even references IPs local to the remote network.
4) It really simplifies doing a full TCP/IP stack over DNS.