You could try something like this: create a new plugin using hook location error_nopermission and code like this:
Code:
if ($vbulletin->userinfo['userid'] == 0)
{
$vbulletin->url = login url;
print_standard_redirect('nopermission_loggedin');
}
Obviously you want to put in your actual URL. Also, nopermission_loggedin is a phrase that kind of says what you want. You can create a phrase that says exactly what you want, but the print_standard_redirect() function will normally use a redirect so that users won't see that message. If you want to force users to see the message (the function will use a different method of redirect that will show the message for a few seconds beforehand) then you can change the parameters of print_standard_redirect(), like:
Code:
print_standard_redirect('nopermission_loggedin', true, true);
Another approach might be to find the phrase that includes the login fields (the phrase varname is "not_logged_in_fill_in_form"), and change it to have a message like "click on this link to go to the login page" (and put in a link, of course).