Du verwechselst "freischalten" mit "forwarden". Das Prinzip von NAT haben ja andere schon angerissen, ich versuche aber trotzdem noch einmal das zu erklären.
Dein PC hinter dem Router hat eine IP-Adresse aus dem privaten IP Bereich, welcher normalerweise im Internet nicht weitergeleitet wird. Dein Router bekommt eine IP aus dem Pool deines Providers. Will dein Rechner jetzt mit z.B. nickles.de kontakt aufnehmen, so kontaktiert er deinen Router als default gateway und sagt ihm "Diese Anfrage geht an www.nickles.de". Dein Router schaut sich jetzt das Paket an, extrahiert die private IP darin und ersetzt sie durch seine eigene IP, ebenso verfährt er mit den Ports. Dabei merkt er sich in einer NAT-Tabelle, daß er genau dieses Paket für deinen CLient manipuliert hat und wie.
Nickles.de sieht jetzt ein Paket, das für ihn wie ein Paket vom Router ausschaut, dementsprechend schickt er seine Antwort an den Router. Dieser erkennt das Paket als Antwort auf die Frage deines Clients und er macht die Manipulationen daran rückgängig und ersetzt die ZielIP (seine eigene) im Paket gegen die, deines Clients aus dem privaten Bereich. So weit so gut, für von innen initiierten Traffic muß man also nicht viel tun, wenn keine Firewall arbeitet.
Wenn jetzt z.B. ein Scriptkiddie mal wieder einen Portscan über ein ganzes Subnet laufen lässt, was passiert dann? Dein Router erhält natürlich dieses Paket, schaut es sich an, sieht in seiner NAT-Tabelle nach, ob es eine Antwort ist, natürlich ist es keine und er schmeißt das Paket einfach als "non-related" weg ohne Kommentar, dein Client erreicht es nie.
Das ist ungefähr das Prinzip von NAT, ganz ohne Firewall. Jetzt kommt die Sache mit dem Forwarding. Anwendungen wie Filesharing bedürfen sogenannter non-related Verbindungen. Clients und Server müssen deinen Client von sich aus kontaktieren können, ohne daß die Verbindung von deinem Cliet ausgeht. Normal würde jetzt das gleich passieren, wie bei dem Portscan. Der Router erkennt die Pakete nicht als zugehörig zu einer bestehenden Verbindung und verwirft sie. Hier kommt das Portforwarding ins Spiel. Du gibt auf dem Router an, daß alle Pakete, die den Router erreichen und auf Port xyz gehen, an deinen Client automatisch weiter geleitet werden sollen. Somit ist dein Rechner für diese Ports so, als wäre er direkt im Internet angeschlossen.
Dies hat jetzt alles noch nichts mit Firewall und Ports sperren oder freigeben zu tun. Die Firewall kann also auf einem NAT-Router im normalen Auslieferungszustand erst mal gefahrlos unkonfiguriert sein, da hier NAT schon schützt. Allerdings nutzt nicht jeder NAT mit einem Router, es gibt auch Leute, die wirklich ein eigenes Subnet mit ffiziellen IPs haben. Außerdem kann es sein, daß man von vornherein bestimmte IP-Bereiche ausgehend oder eingehen sperren will, oder bestimmte Pakete sperren will. Hier kommt dann die Firewall ins Spiel (unter anderem).
Ich hoffe, das hat ungefähr erläutert, warum bei Dir IE und anderes Problemlos ging ohne "freischaltung" und warum dies ungefährlich ist, und warum P2P nicht ging.