On the Mac there's a really nice library called Sparkle that programs can use to implement the checking/install functionality for auto-updates.
Is there anything similar out there for .NET? Or just regular Win32?
ClickOnce has its own security limitations (understandbly so). If you want the full power and control of a Windows application then go with the .NET application updater component. It works like a charm and has even been used by Microsoft internally for their .NET based game (I don't remember the game name though).