We wrote our own installer because all our desktops have limited access, i.e. they can't actually install, change or even breath without permissions, so we wrote our own install process that allows us to raise our permission level during the install, to gac from code:
public static void GACFile(string fileName)
{
System.EnterpriseServices.Internal.Publish pu = new System.EnterpriseServices.Internal.Publish();
pu.GacInstall(fileName);
}
John