Heres a really small code sample on how to check which mode Windows was booted up in (Normal or Safe Mode). This works in .NET 1.x and 2.0.

1 This code checks to see which mode Windows has booted up in. 2 Select Case System.Windows.Forms.SystemInformation.BootMode 3 Case BootMode.FailSafe 4 The computer was booted using only the basic files and drivers. 5 This is the same as Safe Mode 6 Case BootMode.FailSafeWithNetwork 7 The computer was booted using the basic files, drivers, and services necessary to start networking. 8 This is the same as Safe Mode with Networking 9 Case BootMode.Normal 10 The computer was booted in Normal mode. 11 End Select