This method is a bit more risky since it involves editing your registry so be warned!
1. Goto registry editor (start -> run -> regedit)
2. Navigate yourself to HKEY_LOCAL_MACHINESystemCurrentControlSetControlGraphicsDrivers (make sure GraphicsDrivers is highlighted).
3. Right click -> New -> DWORD (32-bit) value -> Name it: TdrDelay -> double click it -> Set it to A (hexadecimal) or 10 (decimal).
The reason for doing this is because the default value before Vista tries to recover the display driver is 2 seconds. When you are playing games or watching HD videos, the display driver is doing complicated calculations and Vista may think it has stopped responding. By prolonging the delay, you’ll receive the message less often and hopefully completely gone.
UPDATE: I’ve just tried this again. What happen is that my computer would freeze for 10 seconds, then display the message. So if your delay before the message appears has been increased to 10 seconds, I suggest setting the delay to 1 second instead until you find a permanent fix.
UPDATE2: Try turning off the timeout detection:
- Navigate to: HKLMSystemCurrentControlSetControlGraphicsDrivers
- Add the following DWORD: TdrLevel and set the value to 0.
See this Microsoft support page for more information.