Actually, after looking at some occurences of that particular bug, it seems to be common if the following sequence of events occurs:
1) You install patch 1.2
2) You install Special Forces OVER patch 1.2
3) You try to reinstall patch 1.2 (especially if you use the incremental, rather than the full patch version)
Apparently, installing patch 1.2 updates the weapons list, and puts the P90 info in the game. Then, installing Special Forces erases the P90 from the game, but only in some places. Then, trying to reinstall patch 1.2 fails to properly overwrite the file. It's a minor bug for the most part, and a very simple fix actually exists, if you happened to update this way.
What everyone should do to fix this bug, from what I can tell (and no, I don't work for EA/Dice, so this is just a random experimental method by a random experimental player) is the following:
1) Uninstall Special Forces, and be sure to save your profiles (so you don't have to redo any key-bindings or what have you... very annoying to get in a good multiplayer game and suddenly nothing works!)
2) Uninstall BF2, again be sure to save your profiles (there should be an option to do this right in the game's uninstall function, so you shouldn't need to do anything special)
3) Reinstall BF2 completely, but do not patch/update anything yet
4) Reinstall Special Forces
5) If using the incremental 1.2 patch, and you happen to still have the 1.12 patch laying around on your hard drive, you would now patch to 1.12 first, then up to 1.2; if you do not have the 1.12 patch, you must use the full version install of patch 1.2. Either way, this sequence should properly patch and fix the bug.
Now, if anyone can give me a simple bug-fix that will prevent my rockets from going through APCs, or my rank and unlocks from suddenly disappearing in the middle of a game, I'd love to hear it.
~H8C Mazryken~