Currently how I do this is I poll for a masked list of USB devices (masked specifically for the device I'm working with) and if it's there, I continue, if not then I notify the user that the device is not connected. The method for getting a list of USB devices is provided for me through a USB peripheral controller chip manufacturer's .NET library.
Is there an event somewhere for a USB device disconnect?
I ended up using this: http://msdn.microsoft.com/en-us/library/aa363480(VS.85).aspx
And followed this: http://www.codeproject.com/KB/system/DriveDetector.aspx