did you complety uninstalled bf2 1st? if not do so, install bf2, then booster pack, then patch it with the 1.41 patch, then go play :)
Ah! I know this error! This is a patch issue. When your game is patching and you all of a sudden quit the patch tool. eg.you were patching the game to 1.2 and suddenly quit. The game will identify it as 1.2 but with missing file(s). So i suggest you patch your game with the latest patch ;)
Wow, I also had problems with SF and got that error, i went to that folder /mods/bf2/shaders and i saw no files in it so go back out of shaders and look around the that folder and went into a winrar which HAD THAT file and i extracted it into shaders and the error went away!
I know how to solve that :D sorted it today myself. Go into your C:\Program Files\Battlefield 2\Mods\bf2 folder, there should be a zip file called "Shaders_client". Create a new folder in the mods/bf2 folder called "Shaders" and extract all the zip files into this folder, this will allow SF to run using those "Shaders" and BF2 to run using "Shaders_client". Hope this helps.