Google Chrome is set up so that no matter what plugin it is, if it crashes it doesn't take down the whole process. In fact, they don't use the ActiveX version of Flash at all... they use the NPAPI version, same as Firefox and Safari.
The trick that Chrome uses, which I assume you could also use but could be tricky, is that they launch the plugin in a seperate process. Firefox 4 has started doing the same thing, in fact (if you look in your task bar you'll see a plugin-container.exe process for Firefox when flash is running; Chrome just launches more chrome.exe processes). Since it's a seperate process, it can crash and it doesn't take out your application; you just detect that the other process is now gone and act accordingly.
Anyway, I've never done multiple processes in c#, but I assume it's possible. that's the most common method for "sandboxing" something like that AFAIK. I could do it in C++ (and have), but C# could be trickier.