The problem is solved for me. The cause was the /login.php file. There were some mod bits to copy across to the new file, but I must have somehow contrived to upload the old file by mistake after doing it.
The new file has an extra bit at the end of line ~55 :- "|| isset($HTTP_POST_VARS['admin'])" which was missing in the uploaded (old) file.
Any chance you know the date on that login file? I just downloaded the 5th copy lol and all the login.php are dated
$Id: login.php,v 18.104.22.168 2005/05/06 20:50:10 acydburn Exp $
Is this the same one? Im going to go hunt down line 55 either way and see if thats my issue.
Update: just checked the one I am using this is line 55
if( ( isset($HTTP_POST_VARS['login']) || isset($HTTP_GET_VARS['login']) ) && (!$userdata['session_logged_in'] || isset($HTTP_POST_VARS['admin'])) )
So thats not the problem