this should rectify all your problems. i use $wildsite so nick changing wont help and another plus to it is that if a user changes to another nick your bot will be clever enough to still give a personal greet as it users the address of the nick.
i also used $replace so that your bot does not kick ban users. any problems please let me know

Code:
ON *:TEXT:!greet*:#: {
  if (!$2) {
    .notice $nick You need to type your greet next to !greet. Ex. !greet Hey
  }
  else {
    set $+(%,greet,$wildsite),2) $replace($2-,$chr(32),$chr(160))
    .notice $nick you have succesfully set your greet to $2-
  }
}

ON !*:JOIN:#: {
  $iif(!$($+(%,greet,$wildsite),2),.notice $nick You do not have a greet set type !greet.,msg # $($+(%,greet,$wildsite),2))
}


Newbie