You should also try to eliminate goto commands

Here's schaefer's code rewritten without the goto's

Code:
 on *:ctcpreply:cersion*:{
if %flag && ($1- == %versioninfo) {
.mode %voiceroom +v $nick
unset %flag
}
}
on *:join:#:{
if ($nick isin %versionnick) {
set %flag $true
.ctcp $nick version
}
}