Hi!
I have read through these posts a few times now and I think I may have found something that you did not try. Fairly early on, you mentioned that you did not want to delete the "HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell{NoRoam}\Bags" and "HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell{NoRoam}\BagMRU" keys. I can certainly understand the hesitation, but you sound like you are willing to try anything, after this long. Have you already tried deleting these keys? If not, then I suggest you try it. Make sure to backup the "HKEY_CURRENT_USER\Software\Microsoft\Windows" key (to be safe, I tend to backup from a key prior to the keys to be deleted). That way, if it still doesn't work, you can restore and you are at the same place you are now.
Okay, so after I typed up that paragraph, I went on to spend about 2 hours typing up a huge explanation as to what I thought was wrong and why. During the course of typing that up, I found out that on November 27th, it looks like you actually did try deleting the "Bags" and "BagMRU". However, in looking at it closer, it appears as though the reg file that you used shot itself in the foot. Look a little closer at this reg file entry:
-------- begin copy/paste below this line
REGEDIT4
;
;8000 Folders
;
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell]
"BagMRU Size"=dword:00001f40
[HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam]
"BagMRU Size"=dword:00001f40
;
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\BagMRU]
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\Bags]
-------- end copy/paste above this line
First of all, the "REGEDIT4" at the top is something that is for Windows 2000. For Windows XP, the first line should read "Windows Registry Editor Version 5.00", I believe. I am not sure if "REGEDIT4" is acceptable to XP's regedit utility (perhaps it is okay for regedt32, I only use regedit). My point with this is that perhaps the reg file did not go in successfully. Then again, maybe it did.
The next thing thing is a little odd because 5 days earlier you were mentioning that the following was your "attack zone":
-------- begin copy/paste below this line
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\BagMRU]
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\Bags]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell]
"BagMRU Size"=dword:00001f40
[HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam]
"BagMRU Size"=dword:00001f40
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoSaveSettings"=dword:00000000
-------- end copy/paste above this line
The difference appears minor to me, I mean what does it matter when the "Bags" and "BagMRU" keys are deleted, just as long as they are deleted, right? Well, consider the following information:
The "Bags" key contains the view settings for each folder (along with some other data). By default, Windows will only keep track of 400 folders at a time. I know that you already know this, I am just restating to make a point. Once the 400th folder has been saved into the "Bags" key, Windows will overwrite the 1st folder's view settings. Since you normally do not update 400 folders at a time (a possible exception being when using the apply to all folders function), Windows probably has a pointer somewhere pointing to the middle of those 400 bags, so that it knows which one to update next (i.e. the oldest "bag"). Now, you have come along and changed the "MRU Size" value to 5000. The pointer is still pointing to the middle of the list, but now there is a 401st (and many more) bag available. This means that the pointer is now messed up because it should not overwrite the oldest bag until the "Bags" key has the same number of subkeys as the "BagMRU Size" value specifies. My point is that the pointer is now bad and that will probably lead to the "Bags" and "BagMRU" keys becoming corrupt (possibly without any interaction from you).
My logic may be faulty (I even see a few holes as I read back through it), but it really doesn't matter. If you make sure to delete the "Bags" and "BagMRU" keys first, then my theory is moot. I know that you have tried this many times, but before I make my next point, I wanted to make sure that you are deleting the keys as a first step.
When I searched the net for other discussions of this issue, I found it interesting that most of the discussions would include instructions that match up to the second reg file listed above (i.e. the one with the keys being deleted first). It took me a couple hours of research and reading through many of the discussions of this issue before I finally noticed that these instructions are incomplete. The instructions are deleting the "Bags" and "BagMRU" subkeys from the "ShellNoRoam" key, but what about the "Shell" key? The difference between the "ShellNoRoam" and "Shell" keys, according to the Microsoft article that you quoted on November 27th, is that one of them pertains to local folders and the other pertains to network folders. I have not figured out which is which, though.
The only discussion of this issue that I found where both sets of keys were deleted was in the article by Neil J. Rubenking that you quoted on November 22nd. It is not as obvious in just looking at his steps because he does one of those "repeat steps 3 through 7" things. I know that you already tried following the steps in this article, but I believe that was before you applied SP2, right? Perhaps when Microsoft stated that SP2 solved the problem, they meant that the "BagMRU Size" value is honored in SP2. Like you said, it would be nice if Microsoft had told us what they meant by "problem solved in SP2", but I work in tech support for a company that occasionaly releases similarly vague answers. We have found that many times, when our development team tells us that the problem is solved in the next patch, the problem that has been solved is not the same problem that was reported. Many times, the problem that is reported has an underlying problem that is actually causing everything to go wrong. In these situations, if we in support catch it, we will change the solution to be "after applying the next patch, the product will now honor the parameter, as documented." It could be that this is what happened with this issue in SP2, Microsoft fixed an underlying problem and "forgot" to tell us that after applying SP2, these steps still need to be applied.
In summation, I think that you need to merge the following reg file with the registry on your Windows XP SP2 box:
==============
Windows Registry Editor Version 5.00
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\BagMRU]
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Bags]
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\BagMRU]
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\Bags]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell]
"BagMRU Size"=dword:00001f40
[HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam]
"BagMRU Size"=dword:00001f40
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoSaveSettings"=dword:00000000
==============
I apologize for my long-windedness, I tend to drown people with the amount of information that I give them, but I have problems picking out the important details from the unimportant details. I think it is very important that you understand my thought process so that you can know whether you want to try my ideas or not. I hope that I have been helpful. Good luck and let me know how it goes.
Sincerely,
Sahoh
P.S. Something else you could try if that does not work is to change the NoSaveSettings to 1. Everytime you mentioned this value in a post, someone else took you down a different path and NoSaveSettings appeared to be forgotten. Perhaps you tried it without mentioning it on here or perhaps I missed it, but if you haven't tried it, you should try just to see if it helps.