Code:
on $*:text:!ctcp[onoff]:*:{
  if $nick isop $chan {
    set $+(%,ctcp,.,$chan) $iif($2 == on,$true,$false)
    .notice $nick CTCP Version check for $chan is now $iif($($+(%,ctcp,.,$chan),2),On,Off)
  }
  elseif !$chan {
    var %a = 1, %b = $comchan($nick,0)
    while %a <= %b {
      if $nick isop $comchan($nick,%a) {
        set $+(%,ctcp,.,$comchan($nick,%a)) $iif($2 == on,$true,$false)
        .notice $nick CTCP Version check for $comchan($nick,%a) is now $iif($($+(%,ctcp,.,$comchan($nick,%a)),2),On,Off)
      }
      inc %a
    }
  }
}
on @*:join:#:{
  if $($+(%,ctcp,.,$chan),2) && !$($+(%,version.check,.,$fulladdress),2) {
    .ctcp $nick VERSION 
    set -e $+(%,version.check,.,$fulladdress) $chan
  }
}
on ^*:ctcpreply:version*:{
  if $read(ctcp.txt,nwt,$2-) {
    .ban -ku3600 $($+(%,version.check,.,$fulladdress),2) $nick
  }
}


Added a message to show to the person that turns the checking on/off the status of the CTCP checking for the relative channel.

Please note the the version check must match whst's in the text file exactly (case insensitive).

Eg: RusselB's Alias Tracker won't match RusselB's Alias Tracker v2.0