I had this with 2 seperate Win7 64 Ultimate installs and Project Reality. Only way I fixed it was like this:
Uninstall BF2 and PR, reboot, delete any legacy files within C:/Program Files/EA Games and anything in your User/Documents/ related to BF2
Reinstall BF2, running installer .exe from DVD as admin and in XP SP3 mode.
Install any expansion packs
Install BF2 1.5 patch
RUN BF2. Play SP map for a few seconds after loading. Disconnect and change your settings to what you want. Save and restart BF2. Load up same map. Quit. Go to User/Documents/Battlefield2/mods/cache and delete any files. Empty them from your recycle bin then start BF2 again and run the same map. This makes sure you ahve the right shaders for BF2, and therefore PR. Make sure res is set to 1024x768 minimum.
Install PR Core 0.87, then PR Levels 0.87. Reboot. Set PR to run as administrator and run in XP SP3 mode. Run PR multiplayer.
Then install PR Single Player Core and levels and play if you wish.
Alternatively, I changed my shaders etc to all different settings but did nothing. The quickest things was that I set my res to 1024x768 instead of 1280x1024 and the ground shaders appeared again

If you use Microsfot Security Essentials, be sure to temp turn off the real time monitoring. It makes the installer files take about 10 minutes to launch!