Okay, here is a little re-write of your code.
You need to review it for any obvious errors or missing / invalid information as applies to your environment.

I tried not to stray too far off of what I think you're attempting to do here.

I would probably clean it up more and do some things a bit different, but you should get the general idea here.

This script does away with the GOTO and GOSUB routines by using User Defined Functions

I also set the SetOptions so that you are forced to write cleaner code.

Let us know how it goes. Notice that the use of the Select / EndSelect will ONLY check for membership in 1 group. Once that group is found it will quit checking the other statements. If you have users that are in more then one group and you need to map multiple drives based on multiple memberships then you will need to use some IF/ENDIF statements to handle those.

NOTE: I wrote this script for use with KiXtart 4.5
It may work fine with earlier versions but I can't say for sure.
 



;------------------------------------------------------------------------------- 
; DOADMIN.KIX
;
; Logon Script for SUSD
;
;
; Script Author: Michael Ingrando
; Date: 10-21-05
;
;------- OVERWRITE THIS SECTION TO KEEP THE LAST KNOWN EDITOR CURRENT -------
;
; Last Modified by: NTDOC
; Date: 2005-10-21
;
; DEBUG ON ;(Uncomment for debugging feature)
;
;------------------------ CANCEL SCRIPT IF SERVER ---------------------------
;
Break On
Dim $SO
$SO=SetOption('Explicit','On')
$SO=SetOption('NoVarsInStrings','On')
$SO=SetOption('NoMacrosInStrings','On')

;Declare the variables
Dim $NoMap,$TopLeftRow,$TopLeftCol,$BtmRtRow,$BtmRtCol
Dim $Common,$Apps,$Nurses,$Itshare,$FOOD
Dim $AMN,$ADO,$ADG,$DC1,$AIN,$PRT,$ITS,$HSQ
Dim $GroupShare,$GroupError

;Abort the script for these workstations
$NoMap=Split("ADM-DC1|ADM-PRT|ADMIN-DO|ADM-GHT|ADMIN|ADMIN-IT|ADMININTET|HMSQ","|")
If AScan ($NoMap,@WKSTA)>=0
COOKIE1
Quit 1
EndIf
;
;
;--------------------- PROGRESS DIALOG BOX PRESENTED ------------------------
;
CLS
SMALL
$TopLeftRow = 0
$TopLeftCol = 0
$BtmRtRow = 30 ;Height
$BtmRtCol = 80 ;Width
;
Color c/c
BOX($TopLeftRow, $TopLeftCol, $BtmRtRow, $BtmRtCol, SINGLE)
;
Color r/c+
AT(10, 10) "Please Standby While Network Resources are Established..."
Sleep 1
;
Color n/c
AT(13,18) "Reviewing User Account Information.........."
Sleep 1
;
;------------------------------ SET VARIBLES --------------------------------
; ****** Notice: Always put quotes around all strings. ******
;
$AMN ="\\ADMIN"
$ADO ="\\ADMIN-DO"
$ADG ="\\ADM-GHT"
$DC1 ="\\ADM-DC1"
$AIN ="\\ADMININET"
$PRT ="\\ADM-PRT"
$ITS ="\\ADMIN-IT"
$HSQ ="\\HMSQ"
;
$Common = $AMN + "\Common"
$Apps = $AMN + "\Apps"
$Nurses = $HSQ + "\Nurses$"
$Itshare = $ITS + "\It-Share$"
$FOOD = $AMN + "\Food Services$"
;
;----------- SET GROUPSHARE VARIABLE (Based on group membership.) -----------
; DEFAULT $GroupShare to NOGROUP$ to prevent script from crashing on assumed variable!
; (THE EFFECT OF MULTIPLE MEMBERSHIP IS THE LAST MAPPING TAKES PRECEDENCE.)
;
$GroupShare = $AMN + "\NOGROUP$"
;
;Map a different drive for different groups or set the preference for first
;located group. Once first group is found the section of code will complete

Select
Case InGroup(@DOMAIN+"\Business & Finance")
;FYI - Though supported it is not a good idea to have the & sign in the name of
;an object. This can easily cause issues with some programs.
$GroupShare= $AMN + "\Business & Finance$"
Case InGroup(@DOMAIN+"\Career Ladder")
$GroupShare= $AMN + "\Career Ladder$"
Case InGroup(@DOMAIN+"\Curriculum")
$GroupShare= $AMN + "\Curriculum & Instruction$"
Case InGroup(@DOMAIN+"\Domain Admins")
$GroupShare= $ITS + "\Infotech$"
Case InGroup(@DOMAIN+"\Educational Services")
$GroupShare= $AMN + "\Educational Services$"
Case InGroup(@DOMAIN+"\Food Services")
$GroupShare= $AMN + "\Food Services$"
Case InGroup(@DOMAIN+"\INFOTECH")
$GroupShare= $ITS + "\InfoTech$"
Case InGroup(@DOMAIN+"\Language Aquisition")
$GroupShare= $AMN + "\Language Aquisition$"
Case InGroup(@DOMAIN+"\Leadership Developement")
$GroupShare= $AMN + "\Leadership Developement$"
Case InGroup(@DOMAIN+"\MAINTENANCE")
$GroupShare= $AMN + "\Maintenance$"
Case InGroup(@DOMAIN+"\MultiMedia Services")
$GroupShare= $AMN + "\MultiMedia Services$"
Case InGroup(@DOMAIN+"\Native American Edu")
$GroupShare= $AMN + "\Native American Edu$"
Case InGroup(@DOMAIN+"\Operations")
$GroupShare= $AMN + "\Curriculum & Instruction$"
Case InGroup(@DOMAIN+"\Personnel Services")
$GroupShare= $AMN + "\Personnel Services$"
Case InGroup(@DOMAIN+"\Public Relations")
$GroupShare= $AMN + "\Public Relations$"
Case InGroup(@DOMAIN+"\Purchasing Property Control")
$GroupShare= $AMN + "\Purchasing Property Control$"
Case InGroup(@DOMAIN+"\Research Evaluation")
$GroupShare= $AMN + "\Research Evaluation$"
Case InGroup(@DOMAIN+"\Special Services")
$GroupShare= $AMN + "\Special Services$"
Case InGroup(@DOMAIN+"\Staff Development")
$GroupShare= $AMN + "\Staff Development$"
Case InGroup(@DOMAIN+"\Student Services")
$GroupShare= $AMN + "\Student Services$"
Case InGroup(@DOMAIN+"\Superintendent")
$GroupShare= $AMN + "\Superintendent$"
Case InGroup(@DOMAIN+"\Title I")
$GroupShare= $AMN + "\Title I$"
Case InGroup(@DOMAIN+"\TRANSPORTATION")
$GroupShare= $AMN + "\TRANSPORTATION$"
Case 1
$GroupError=1319
;The specified group does not exist. You can check for this error code
;and take appropriate actions if wanted. I did not add any code to
;the script to do anything if it gets set.
EndSelect
;
;------------------ CONTINUE PREVIOUS PROGRESS DIALOG BOX -------------------
;
AT(16,22) "Thank You, Login will continue....."
Sleep 1
CLS
;
;---------------------------- MAP GLOBAL DRIVES -----------------------------
;
Color n/c
AT (1,14) "Mapping District Standard Global Network Drives......"
SLEEP 1
;
;----------- MAP STANDARD DRIVES FOR ALL SITES (Global Mappings) ------------
;
USE F: $Apps
;
USE G: $GroupShare
;
USE I: $Common
;
If InGroup(@DOMAIN+"\Nurses") USE N: $Nurses EndIf
;
If InGroup(@DOMAIN+"\Domain Admins") USE O: $Itshare EndIf
;
If InGroup(@DOMAIN+"\Food Services") USE W: $Food EndIf
;
;
;------- THE NEXT MAPPINGS PORTION OF THE SCRIPT IS UNIQUE TO THE SITE ------
;
;----------------------------- MAP LOCAL DRIVES -----------------------------
;
Color n/c
AT (3,14) "Mapping Site-Based Local Network Drives.............."
SLEEP 1
;
;
;------------------ MAP SITE OR APPLICATION SPECIFIC DRIVES -----------------
;
;IF INGROUP ("Domain Users") USE M: ENDIF
;
;
;-------------------------- MAP CDROM TOWER DRIVES --------------------------
;------------------------ (NOT IN USE AT THIS TIME) -------------------------
;
;
;------------------ END UNIQUE MAPPINGS PORTION OF SCRIPT -------------------
;
;
;
;------------------------------- CHECK UPDATES ------------------------------
;
Color n/c
AT (5,14) "Checking for Updates and Configuration Changes......."
SLEEP 1
;
;----------------------- CREATE UPDATES IN THIS SECTION ---------------------
;
;----------------------- REGISTRY MODIFICATION SECTION ----------------------
;
;---------------------------- UPDATES COMPLETED -----------------------------
;
Color n/c
AT (7,14) "Updates and Configuration Changes Completed.........."
SLEEP 1
;
;-------------------------- DISPLAY USER SETTINGS ---------------------------
;
SMALL
Color g+/n
BOX (10,14,18,66,FULL)
Color w+/n
AT ( 11,20)"Userid : " ; User Login Information Window Text Strings
AT (12,20) "Full name : "
AT (13,20) "Privilege : "
AT (14,20) "Workstation : "
AT (15,20) "Domain : "
AT (16,20) "Logon Server : "
AT (17,20) "Script Used : "
Color y+/n
AT ( 11,37) @userid ; Associated Macro's
AT (12,37) @fullname
AT (13,37) @priv
AT (14,37) @wksta
AT (15,37) @domain
AT (16,37) @lserver
AT (17,37) @scriptname
sleep 3
;
;
;--------------------- CONFIRM GLOBALLY MAPPED DRIVES ----------------------
;
Color n/c
AT (21,14) "Verifying Globally Mapped Network Drive Connections..."
SLEEP 1
;
;
;---------------------- MAPPED DRIVE ERROR CHECKING -------------------------
;
If Not Exist('F:\')
Dim $Msg,$DL
$DL='F:'
$Msg=MapErr('F:')
$Msg=MessageBox($Msg,"Sunnyside USD #12 - ERROR - "+$DL+" Drive Missing", 48, 15)
EndIf

If Not Exist('G:\')
Dim $Msg,$DL
$DL='G:'
$Msg=MapErr('G:')
$Msg=MessageBox($Msg,"Sunnyside USD #12 - ERROR - "+$DL+" Drive Missing", 48, 15)
EndIf

If fnMapped("\\ADMIN\NOGROUP$") <> "G:"
Dim $Msg,$DL
$DL='G:'
$Msg=MisDirect('G:')
$Msg=MessageBox($Msg,"Sunnyside USD #12 - ERROR - "+$DL+" Drive Association Failed ", 48, 15)
QUIT 1
EndIf

If Not Exist('H:\')
Dim $Msg,$DL
$DL='H:'
$Msg=MapErr('H:')
$Msg=MessageBox($Msg,"Sunnyside USD #12 - ERROR - "+$DL+" Drive Missing", 48, 15)
EndIf

If Not Exist('I:\')
Dim $Msg,$DL
$DL='I:'
$Msg=MapErr('I:')
$Msg=MessageBox($Msg,"Sunnyside USD #12 - ERROR - "+$DL+" Drive Missing", 48, 15)
EndIf

;All drive mappings were succesful so show logon message
$Msg=LogonMsg()
$Msg=MessageBox($Msg,"Sunnyside USD #12 - LOGIN SUCCESSFUL !!!", 64, 15)
;
;----------- TELLS THE SCRIPT INTERPRETER THAT THE SCRIPT IS DONE -----------
COOKIE1
Exit 1
;
;--------------------------- UDF DEFINITIONS --------------------------------
;------------------------------ fnMapped ------------------------------------
;

Function fnMapped($sUNC)
Dim $oDrives,$oDrive
$oDrives = CreateObject("Scripting.FileSystemObject").Drives
If Not VarType($oDrives) & 9 Exit 1 EndIf
For Each $oDrive in $oDrives
If $oDrive.DriveType = 3 AND $sUNC = $oDrive.ShareName
$fnMapped = $oDrive.DriveLetter + ":"
EndIf
Next
EndFunction
;
;---------------------- MESSAGE BOX PROMPTED TO USER ------------------------
;
Function MisDirect($DL)
$MISDIRECT="Your login to the SUSD Network has reported an error."+@CRLF+
"Some network resources may not be available."+
"Your " + $DL + " network drive to security group association has failed."+
"Please report this to your I.T. Department."+
"Your account has been validated by " + @LSERVER + "."+
"The time is " +@DAY +","+@TIME+","+ @DATE+"."+
" Have a nice day ;o) !!"
EndFunction

Function MapErr($DL)
$MapErr="Your login to the SUSD Network has reported an error."+@CRLF+
"Some network resources may not be available."+@CRLF+
"Your " + $DL + " network drive did not acquire a connection."+@CRLF+
"Please report this to your I.T. Department."+@CRLF+
"Your account has been validated by " + @LSERVER+"."+@CRLF+
"The time is "+@DAY+","+@TIME+","+@DATE+"."+@CRLF+
" Have a nice day ;o) !!"
EndFunction

Function LogonMsg()
$LogonMsg ="Welcome to the Sunnyside USD Computer Network."+@CRLF+
"Your account has been validated by "+@LSERVER+"."+@CRLF+
"The time is "+@DAY+","+@TIME+","+@DATE+"."+@CRLF+
" Have a nice day ;o) !!!"
EndFunction