If you can get in 10% of the time, it's not an issue with your ports. More likely you're timing out either through packet loss or an interruption to your connection. When you do connect, are you able to stay on the server and play without problems? Or do you get disconnected?
Things to check for this might be:
1. Wireless strength if you're on wireless.
2. Router problems, old router, packet size, dmz, etc.
3. Connection Setup, if you've got a new router, some routers recieve extension checks from your cable or dsl modem that require your username and password to be available every 20-30 seconds or you get connection interruptions.
4. ISP, especially if you're at school or somewhere that they might be limiting or restricting your connection in some way.
5. Interference, how big is your internet connection, is someone else on your line torrenting while downloading from microsoft and transferring files over AIM?
6. Probably not an issue, but how old/long are your LAN cables?
7. Hate to say it since it's the default crap answer from ISP's but does the problem get any better if you turn your modem off, wait and then back on?