You should check to see if they're in the admin role first.
using System.Security.Principal;
public static bool IsAdmin()
{
WindowsIdentity identity = WindowsIdentity.GetCurrent();
WindowsPrincipal principal = new WindowsPrincipal(identity);
return principal.IsInRole(WindowsBuiltInRole.Administrator);
}
IMHO, you should separate the admin code into a different DLL and manually load it if - and only if - the user is in the admin role.
How you marshal the code for the different user roles is an exercise I leave to you.