if it's not client-side initiated connections, it may be getting blocked by your router or more local security due to the stateful inspection routine. NAT security can cause issues too--many routers have different security settings that can cause problems. Setting up the port forwarding or bypassing your router takes most of these local routing issues out of the way, leaving you with something on your system, your ISP, or somewhere out there in route causing problems.

Best thing you can do is check all your security logs to see if something is getting blocked when zoning/logging in, and if nothing is getting logged, watch your connections as you are zoning logging in with something like netstat or TCPView and then tracing the connections that are in WAIT-STATE to see if they are timing out. If it's connection time outs, there is likely a routing issue with your ISP segment or beyond that you nor SE have no control over. In that scenario, forward your findings to your ISP and they can track down who is responsible for the failing segment to get them to investigate.