You may have more than one Select/Case condition being true, but when the first one is triggered the remaining ones are skipped.
The "slowness" of IF operations will not be significant during login, so don't worry about it too much.
If you were checking the conditions in a loop which is executed many thousands of times you might be concerned about the overhead.
The major benefit of SELECT for most people is not a speed issue, but rather a maintenance and support issue. It is easier to maintain a script which is using SELECT than it is to maintain one with nested IFs.
Depending on the complexity of your setup, the simplest solution is to keep the SELECT construct for the majority of your mappings. Break out just those sections which may be coincidental into individual IF statements to follow your SELECT structure, or a second smaller SELECT if it is appropriate.
Code:
; Membership of groups A-C is mutually exclusive.
Select
Case InGroup(A)
Map A drives
Case InGroup(B)
Map B Drives
Case InGroup(C)
Map C Drives
EndSelect
; Users may appear in group Z as well as other groups.
If InGroup(Z)
Map Z drives
EndIf
If you are worried about speed don't forget to order your CASE clauses so that the most likely one is first, and the least likely last.