Most things, including websites, run off TCP, which is a guaranteed-delivery network protocol. It is prioritized and has a robust retry scheme as a result. Hence, most things "just work." Your websites and such are predominately TCP; you would not expect problems with something like Youtube.
The game is largely UDP based, which is best-effort delivery. Delivery is NOT guaranteed. Due to reasons no one but a few of us care about, the client and server don't retry very well. So if a UDP packet is lost during zoning (UDP is usually lower-priority), the client keeps waiting, the server keeps waiting, but no one bothers to retry. Eventually, the client says "fuck this" and kicks you back to server select. That is zoning lag/disconnect in a nutshell.
This boils down to providers in many cases. I used to have DSL and NEVER had a zone disconnect. My initial foray into cable initially caused me about 20% disconnects, but it's business class and I yelled at them. Since then, almost 0. It COULD be your home network, but my money is on the ISP.
Don't believe me? Sign up for a TCP-based free VPN service. You will see VERY few zone disconnects in all likelihood, as you are now wrapping that traffic in something more guaranteed. Or, if you have a work VPN, try using that. Just make sure you're using TCP for VPN, not UDP or you might actually make it worse.
Could we fix this? Probably, but with 2.5 nearly here, the networking code is completely rewritten. TBH, I think it still has problems, but it makes little sense to correct old code that's going to be replaced in a matter of weeks. We might have to revisit this in 2.5 though once we see how things behave.
Long story over.
-t