I guess I was thinking that you could change the bbcode to take userid as the option, then use that in the profile link, but I guess you don't want to do that (I guess if a user is entering it then they don't want to have to look up the userid).
So what you could do is create a plugin using hook location private_newpm_blank and code like this:
Code:
$vbulletin->input->clean_gpc('r', 'username', TYPE_STRING);
if ($vbulletin->GPC['username'] != '')
{
// validate username
if ($user = $db->query_first_slave("SELECT userid FROM " . TABLE_PREFIX . "user WHERE username = '" . $db->escape_string($vbulletin->GPC['username']) . "'"))
{
if (empty($pm['recipients']))
$pm['recipients']= $vbulletin->GPC['username'];
else
$pm['recipients'] .= ' ; '.$vbulletin->GPC['username'];
}
}
I haven't tested it but it looks like it should work.