As t0y said, your card can’t handle vertex programs in hardware, and there is nothing you can do about it (well, you can buy a new card of course). And no, there is no way to determine whether something in supported in hardware or not.
And as you san sanjo, you can only know what the driver can do, not the hardware. But on the other hand, knowing if something is done by the hardware or not is not what you want to know, you want to know whether it’s fast enough for you. It can be fast enough even if it’s done in software you know.
And yes, it does make some sense to expose extensions that are not hardware accelerated, for reason I have already mentioned. You don’t need to know if it’s hardwate accelerated, only if it’s fast enough for you. And it also makes it possible for you to at least try the extension.
And just to point it out sanjo, on new processors (P4 2Ghz, Athlon XP, etc.), I’m sure that vertex programs run quite nicely off the host CPU =)
You really don’t want to know if it’s hardware accelerated or not… when it doubt, leave it as an option for the user; afterall, someone two years from now may end up running your program in software, but it would still run perfectly because the CPU speed has gone out of the roof, etc…
Point is, if the driver says it supports it, then let the user choose.