As Dana pointed out, the Channels List folder is handier for auto-joining channels because it can be made network-dependent.
  1. Click Channels Folder button (3rd from the left on the toolbar).
  2. Click the Add button.
  3. Channel: Type in the name of the channel you want to add.
  4. Password: Put in the password (channel key) if there is one and you know it.
  5. Description: This field is just a note for you to see when you open your channels list folder to remind you about that channel (i.e., Dana's channel).
  6. Networks: Pick which networks you want to join that channel on. Suppose you wanted to join #MyChannel only on DALnet, EFnet and undernet. Click the Add button below Networks and select DALnet; click it again to add EFnet and finally again to select undernet. Now it will only auto-join those channels if you are connecting to one of those networks.
  7. [ ] Join channel on connect Check this to make mIRC auto-join those channels
  8. [ ] Minimize on join This prevents all kinds of windows opening right up (annoying indeed if you auto-tile, as I do).
  9. Click OK to save your changes and you're done. The next time you connect to one of those networks (only), you will auto-join #MyChannel.
As for auto-setting modes, please review the script samples below.
Code:

; [ Original script - modified ]
;
on *:Connect:{
  ;
  ; Join multiple channels in a single JOIN command
  ;
  join #chan1,#chan2
  ;
  ; These two mode commands have to be moved to either on JOIN or on OP because you will not even be in the channel(s)
  ; yet, much less opped. If you're not on and opped in #chan1, you can't set any modes for #chan1. (Commented out)
  ; See the script at the bottom of the post for a fuller description.
  ;
  ;   mode #chan1 +nt
  ;   mode #chan2 +nt
}
;
; When someone ops me on #MyChannel
;
on *:OP:#MyChannel: if (s !isin $chan($chan).mode) mode $chan +s
;
; When I join the channel first (creating the channel), mIRC doesn't know that you're opped in #MyChannel until after the JOIN
; is complete (which occurs AFTER on JOINs have all been parsed and processed). Thus, you need a timer (1 millisecond
; will do just fine) to check after the JOIN to see if you're opped or not (meaning you created the channel).
;
on me:*:JOIN:#MyChannel: .timer -m 1 1 _mode $chan +skl keyword 5
;
; _mode is only used inside this script (alias -l); it's for the timer's use.
;
alias -l _mode if ($me isop $1) mode $1 $2-


DALnet: #HelpDesk and #m[color:#FF0000]IR[color:#EEEE00]C