Though I'm not sure how to script it, I think you can have an option to enable/disable shaders. If shaders are enabled, then process them. If not, don't. You can use fixed function effects (they get rendered once only) without any problems, however. You don't have to be going to the shader 3.0 features, you could stick with the older 1.0 or 1.1 features for more compatibility. If you can, I'd suggest using the highest shader version your card can handle and work from it. Then, on your options menu in your game, turn off shaders (or use lower version models) through one of the options (have it off by default for compatibility issues).