Doesn't Graphics return Null if it knows for a fact that it couldn't initiate correctly? I thought that was added a while back for requests just like this.
Of course, knowing for a fact that it failed and failing in general are two quite different things, but for anything more than that, I just set a flag when the engine shuts down properly, and if that hasn't been set I pop up a "the game terminated abnormally last time you ran, would you like to run in safe mode?" and if they say yes, switch drivers.
As a second backup, I check the length of time the game has been running and if it's less than a couple of seconds, same deal, next time it runs, "the game terminated abnormally, yadda yadda.." It's not perfect, but I think it covers me fairly well.
Of course, knowing for a fact that it failed and failing in general are two quite different things, but for anything more than that, I just set a flag when the engine shuts down properly, and if that hasn't been set I pop up a "the game terminated abnormally last time you ran, would you like to run in safe mode?" and if they say yes, switch drivers.
As a second backup, I check the length of time the game has been running and if it's less than a couple of seconds, same deal, next time it runs, "the game terminated abnormally, yadda yadda.." It's not perfect, but I think it covers me fairly well.