Well, I had this issue intermittently (actually often) with 1.02 and it is still here. I usually have to reboot, but even then that does not work sometimes.
I read on TotalBF2 (sorry cant link right now - behind firewall that blocks them....) that there is also a shader cache duplication issue. BF2 would created TWO sets of shader files then it would try to load both. This is not possible so what would happen was the first set would load, then it would try to load the next resulting in HUGE cpu, ram, and page file activity on any map. Every so often I have to do this: Go to My Documents/BF2/Mods/Cache (or something like that) and delete EVERYTHING in there folders and all. You will have to re-optimize your shaders again, but there should be only one set of cache files for each map object.
This works for some people, and doesnt for others.... It only helps 45% of the time for me but that's better than 0%. Oh, and I have a monster CPU at home... there is NO reason for this to occur with many of us, but it does.