I've had a problem with both of my Vista computers at home since I got them. Whenever the computer is rebooted, it forgets the Recent Programs List and resets it to the default programs (which I don't use at all). After some digging around, I found the solution and wanted to share it. Since my computers at home had this problem with a default installation of Vista, I'm assuming there are others out there with the same issue.
First, make sure you are set to remember recent programs. I was all along, but if this isn't set, then then next step won't fix your problem either. Right-click on Start | Properties. On the Start Menu Tab, make sure the box for "Store and display a list of recently opened programs" is checked.
Now, to what caused my issue....
In the registry, I was missing an entry that essentially makes Vista remember the recent programs. For you, the entry may either be missing, or it may just have the wrong value assigned. Go into the registry and browse to:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
In this folder, there should be an entry for "StartMenuInit". If it does not exist, create it as a DWORD entry. It's case-sensitive, so make sure to type it exactly like that.
Once the entry is there, set the value to "3".
Creating this entry fixed the problem.... I can now reboot my computer, and it remembers my recent programs list. YEAH!