in reply to Re^2: passwords with special characters are trying to kill me... no seriously!
in thread passwords with special characters are trying to kill me... no seriously!

Possibly try using the quotemeta function which backslashes all non-"word" characters. This might work for you:
my $set_password = qq(/usr/bin/ssh $targethost "echo ') . quotemeta($new_password) . qq(' | /usr/bin/passwd --stdin $username"); system($set_password);