Converting shaders to programs

I’ve recently gotten into the world of programmable shaders, and find them quite useful. Unfortunately, my client’s hardware cannot use them and he is unwilling to upgrade to a better graphics card. That leavs me with fragment and vertex programs, which I have never studied. Is there a way to convert vertex and fragment shaders into programs? Failing that, what’s a good place to learn about writing vertex and fragment programs?

One way would be to port the shaders to CG and pre-compile them with cgc to ARB programs using the appropriate output profile.

UPDATE: It seems, that you can compile GLSL shaders directly since recently, if you specify -oglsl as parameter to cgc.