This may be one of those situations were you just are not going to know the right way to do
it.
Like the Linux developers stumbling over themselves to deal with wireless drivers.. First they
treated them as generic ethernet devices, which ment that each driver had to do way to much
work on it's own.
Then Intel introduced their open source 802.11 stack, unfortunately it was not generic enough
to work with all sorts of different drivers.
Now they finally got the devicescape stuff fairly down so that it makes writing Linux wireless
drivers a sane thing to do.
Who knows? It may just be that a Intel video card vs Nvidia/ATI card are so different
architecturally that they simply can't be managed with the same API and that maybe Nvidia and
ATI cards can be managed together or something like that.
How can you tell? The only two ways I can figure it out is wait years and years and end up
with half-made drivers supporting obsolete hardware, or just to go for it and know it's going
to be a learning experience and get something done quick enough that it can actually benefit
end users.