Bit of an odd one that, but here is one thing you can try.
1. Create one sub directory (call it secure or something)
2. Set just that directory to not use anonymous access
3. Add a file to this directory that sets Session("UserName") = Request.ServerVariables("LOGON_USER") and then returns the user to the referring page
4. On every page where the username is required check the session variable to see if it is populated with the user name.
5. If it is empty then send the user to the secure directory to collect the username.
6. Note that if a page recieves form input this will not work unless you add the username to the initial form and collect it that way.
I'm not certain this will fix your memory issue (or what's causing them in the first place), but it doen't take too long to implement on most setups
Regards
D