There is no way you could easily block a skilled technical user from accessing things through your firewall.
Many networks limit outside traffic to just http and https, having their own internal DNS and email servers which are exempt from that policy. This makes it more difficult to get around, but still not impossible.
As an example, I often connect to my home server from hotels and free wireless places using Putty and ProxyTunnel. It appears to just be normal HTTPS traffic, but really tunnels SSH traffic, which in turn tunnels anything I want. The same can be done over regular HTTP.
Stopping users from getting around the firewall doesn't really have a technological solution. You are best off having a clear acceptable usage policy, with clear penalties for violating it (depending on the severity of the violation, anything from a verbal or written warning up to being terminated on the spot may be appropriate) and actually ENFORCING it.
Explaining to users WHY things are blocked is sometimes helpful too. If for example you are blocking streaming music because the site has a very limited internet connection and it slows things down, tell the users that. Knowing there's an actual reason behind it beyond "we just don't want you to" goes a long way towards stopping people from trying to get around it.
At the same time make sure you don't block so much that it starts interfering with their job. I've worked at places that blocked website by keywords that made completely relevant and necessary websites off limits. So what should have been 5 minutes of research turn into hours or days of trying to get a site unblocked.