When a direct connection between two computers (clients) is not possible for some services (e.g. HTTP, FTP, or chat protocols like MSN and AOL), a user can use these services via a so-called SOCKS server (routing).
Example: Bill wants to chat with Jane. Bill has a bad service provider who limits internet access. Bill's computer then connects to the SOCKS server, which is able to "chat" with Jane's computer without restrictions.
An HTTP proxy works similar to a SOCKS server, but is limited on routing HTTP traffic only.