If you look inside the source for Win32::AdminMisc::LogonAsUser, you will see that it is essentially a simple wrapper function for the LogonUser and ImpersonateLoggedOnUser functions from the Windows Platform SDK. There are a few more conditions that the Platform SDK notes but aren't in the Win32::AdminMisc documentation although none relating to using it on a domain or with Win2k server. You can check out the LogonUser docs through MSDN here:
A good first step will definitely be to track down what Win32::GetLastError reports.