I was lead to believe that opening ports makes your pc more vulnerable? Have to say i don't fully understand it all but other games work without me opening ports, I did try opening ports for the beta but that didn't work 
Not really, though someone may correct me.
Basically, open ports mean that remote servers/clients can initiate connections to you. That is, suppose you are hosting a website on your PC, then you need to open port 80, so that a connection can be intiated by those who want to view the website.
So, the only difference is that an attacker can initiate a connection to something listening to any open ports. More than one thing cannot listen on one port, so if BF2 is listening, an attacker can only initiate a connection to BF2 by using that open port.
The only time opening ports becomes a security concern is if:
a) your system is compromised, and you open a port that something malicious is listening on
b) your system is running a certain version of certain software that has a security hole.
Case b) is the greater concern. If your system is compromised it's likely that any malicious software will initiate connections itself.
So, it is possible that an exploit could be found to run remote commands by initiating a connection with BF2 if you opened the ports, but I don't think this is really a great concern. It's far more probably that opening up to an http server, or a telnet server, or an ssh server would be exploitable.
The above is mostly taken from my head, and I imagine I have something wrong somewhere, but hopefully someone will come and correct me and we can all learn together.