ETA: This is a fix for you Athlon X2 users who randomly disconnect from servers with no warning. It is not for anyone with a single core AMD or ANY Intel chip. The Pentium D's do not have this problem AFAIK.
If you're tired of having to manuall set affinity or you're having problems with your BF2 or any other games since you've changed to a dual core AMD try this (it still uses shortcuts to load the game):
I've been using this successfully for the past 3 months in a ranked server and it takes up almost no memory and PB hasn't had any issues with having a loader starting BF2. It also fixed a problem in Counter-Strike where it would studder until a core was disabled for the processes (steam.exe and one other). BF2 would simply drop connection without any warning, this app fixed that.
Forgot to add this:
You will need a shortcut to launch BF2 from when using prioaff. Copy the original shortcut in the startmenu and edit the name to read "BF2 - Single Processor" (or whatever you like). Then edit he properties on this new shortcut and change the following boxes. Copy an paste everything to the right of the : (it's exactly what I have in mine)
Target: C:\WINDOWS\prioaff.exe 3 01 "C:\Program Files\EA Games\Battlefield 2\BF2.exe" +menu 1 +fullscreen 1
Start In: "C:\Program Files\EA Games\Battlefield 2\"
Ok, what the target is doing is telling prioaff to launch bf2 with the following settings; 3= realtime cpu priority & 01= processor 0 (1st core). You shouldnt change the cpu priority, but you can change it to use the 2nd core by putting 10 in place of 01.
The Start In is instructing the program as to it's home folder (I think...) I do know that if this isn't set to the correct folder for your BF2 installation, BF2 will not be able to load any of the content it uses from that directory. This is shown when you load in and get some crazy error saying something couldn't be found/loaded. If it's set correctly, bf2 will run just the same.