One way I know of to do it is to create a batch (.bat) file to run the program using the /low switch. It is kind of complicated, but would look something like this..
Code:
cd "C:\Program Files\BF2"
%comspec% /c start /low bf2.exe
This is a rough idea, but if you get my drift, it may work properly. However, with the use of Punkbuster I'm not sure if it will work. You will need to replace the paths in my example with the real locations. You can find the real locations to applications by looking up the properties to a shortcut.
So you run Notepad, and call it something like "BF2_low_priorty.bat" when you save the file. This basically opens a command prompt, goes to the selected directory, and attempts to run the program in a low priority state. Whether or not it will work with Battlefield 2 or newer apps, I have no idea, as I have not tested this procedure in quite awhile. Generally, procedures such as these do work with proper tinkering around.
Once the batch file is set up and you know that it works properly, you can use this to launch the game all the time. Batch files are still used in many instances for Windows scripting on Windows domain networks to perform tasks on many computers at the same time. While not the most precise answer, I hope that this gives you a way to at least attempt to make it work in your favor.
Others may have a better answer to this issue, and there may be a freeware application out there that lets you change the priority of certain programs on startup.
Kind regards, and welcome to the forums.