No matter how many cores you have, BF2 runs on a single core. Nice if you have another one for antivirus, firewall, system processes, etc. but any extra beyond that won't help much. Bots eat CPU power for breakfast, so core clock is vital - but 3 GHz should be enough for 32. Also, BF2 can only use a maximum of 3 GB of memory, being a 32-bit application.
OS, biggest difference in speed is that Vista just tends to be slower in all games compared to XP or 7, but only if you are already bottlenecked by the hardware. Tweaking OS is mostly pointless, because you are not bottlenecked by CPU or RAM to begin with. Turning of firewall and/or antivirus is not really recommened (unless behind a router firewall), and like stated above, is not likely change much. Turning off indexing service might help, but it's not like it's doing anything when you play. Also, if Win7 notices a "heavy" process being run, it's sensible enough to discontinue scheduled background processes like defragmenting automatically.
We should be lucky the game runs as well as it does now. Not all 2005 games even run on modern hardware at all, let alone support widescreen resolution.