The point we’re trying to make is that you already have a “GPU base line”: the hardware that can do PSSM. Hardware that can’t do that cannot use your program.
So you already have a baseline, whether you want one or not. I would suggest recognizing that and deciding where you really want to draw that baseline. Do you like that baseline, or are you willing to move it forward?
In general, there are two main groups of hardware that you will run afoul of when working with shaders: Intel and unsupported hardware.
Intel hardware barely works, even if you just focus on fixed-function. They spend almost no effort on OpenGL drivers. If you’re trying to make something work in OpenGL on their hardware, you need to test on it constantly. And since there are many types of Intel hardware out there, you need to test on it in several different cases.
Unsupported hardware is a related problem. The hardware currently being supported by vendors are all GeForce 6xxx-series and above (including the 3-digit GeForces), and all ATI/AMD HD-series cards (HD-2xxx and above). The biggest gap this leaves is the pre-HD series: 9xxx, Xxxx, and 1Xxxx lines. These are all DX9 cards, and there are still a fair number of them out there. The last drivers for these are somewhere between OK and terrible. So again, lots of testing.
In general, if your application is a game, you can just tell users “update your drivers,” and you can expect them to not be using Intel for rendering. If it’s more of an application, then you’re more likely to have to deal with what they give you, though you can still ask them to update. Either way, you need to test your application on a wide variety of hardware.
Personally, I would say that you need to serve the needs of two groups, and trying to do both at the same time will only make one of them highly annoyed with you. You need a renderer that works on modern hardware (ie: stuff that’s actually supported). All the shadow mapping in the world isn’t going to make up for the lack of HDR, gamma correction, and other things that users expect from a program meant for modern GPUs.
You need a “baseline” renderer that works on your minimum-spec systems. Your baseline renderer can use fixed function, but it shouldn’t be trying to do shadow mapping and the like. The idea here is to be minimally functional and look just decent enough to be OK. Basically, Quake-style rendering should be all you aim for at that level. OpenGL 1.1, maybe up to 1.4 and combiners. But that’s it. No shadow mapping, plain vertex lighting, that’s all.