I use an alias that covers both on join bad nicks and on newnick changes in the channel
Code:
on *:Join:#:./NickKick $nick $fulladdress
on *:nick:/NickKick $newnick $fulladdress
alias NickKick {
if ( badwordhere isin $1 ) .... etc to detect bad nicks for both scenarios
}