Okay, I've found a workable solution to my shader situation. This will allow me to avoid switching to CgFX, and still support the GLSL profiles. Now my codebase will run on ATI machines with all features supported! =D
Basically, I read about a function called cgCombinePrograms(), that allows me to combine multiple programs into a single program. This arrangement allows GLSL to work correctly, since it combines them into a single handle like a GLSL program. Admittedly, I lose the ability to mix-n-match individual vertex, geometry, and pixel shaders in the render function. However, that was never a huge deal for me, so its loss is acceptable for the sake of compatibility.