I set up a static IP address and port forwarded my router specifically for Project Reality, that takes a wee bit of time to setup but I find it is more stable and reliable.
"Routers were not designed to allow incoming network requests and some games can play tremendously better if an incoming connection is forwarded through the router to the game ". quote from this page on port forwarding". You add the following ports for Battlefield 2
TCP Ports
4711, 27901, 28910, 29900, 299
UDP Ports
1500-4999, 16567, 27900, 29900
I used the following link to help me set that up but there are other threads on the net that go into more detail if you need it. https://portforward.com/battlefield-2/