I came accross this issue for the first time today, and it's quite a weird one. After about an hour of research I found many sites that states: StartMenuInit registry value was never created with the first restart.
I then just created it and set the dword value to 2 and the problem went away. Here are the steps to take to repair such issue with windows xp. If the value is not there, create it.
Click Start::Run::type Regedit
Navigate to the following location:
HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Advanced
right click Advanced in the left column, create a DWORD value named StartMenuInit
Double-click StartMenuInit and set 2 its data
Close Regedit
restart.
remember, backup your registry before you alter it.