Without the actual code its a bit hard to see if it might be something like a typo.
So i would do this
on me:*:JOIN:#: {
if ($chan == #channel1) { echo -st JOIN EVENT $CHAN ... run an alias }
if ($chan == #channel2) { echo -st JOIN EVENT $CHAN ... run another alias }
if ($chan == #channel3) { mode # +isnt }
}
Then you can monitor if the alias is even being called and if it is exactly whats being passed as parameters.
oh PS : i would also do this (although its not related to your problem)
on me:*:JOIN:#: {
if ($chan == #channel1) { echo -st JOIN EVENT $CHAN ... run an alias }
elseif ($chan == #channel2) { echo -st JOIN EVENT $CHAN ... run another alias }
elseif ($chan == #channel3) { mode # +isnt }
}
[edit]
silly question, your not putting the word /RUN aliasname are you?