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.
' This code checks to see which mode Windows has booted up in. Select Case System.Windows.Forms.SystemInformation.BootMode Case BootMode.FailSafe ' The computer was booted using only the basic files and drivers. ' This is the same as Safe Mode Case BootMode.FailSafeWithNetwork ' The computer was booted using the basic files, drivers, and services necessary to start networking. ' This is the same as Safe Mode with Networking Case BootMode.Normal ' The computer was booted in Normal mode. End Select