If, via msconfig, you have disabled some start-up programs, and then subsequently you decide to re-enable them; and inspite of re-enabling them again, you find that they do not start up at boot time, then this may interest you.
The reason for this happening is as follows:
The following registry data are saved when startup applications are disabled. When the applications are re-enabled, the registry data are restored as REG_SZ type.
When you re-enable a startup application that requires path environmental variables specified with the registry type REG_EXPAND_SZ, the environmental variables are no longer usable and the application will not be executed because the registry is restored as REG_SZ instead of REG_EXPAND_SZ.
To resolve this issue;
Change the registry type to REG_EXPAND_SZ.
a. In MSConfig Startup tab, check the command for each application.
b. If the command has environmental variables such as %SystemRoot%, check the location to see if it is in the registry
c. If it is in the registry, remember the location and command.
d. Start Registry Editor by clicking %SystemRoot%\regedit.exe.
e. Locate the registry you remember at step c and remember the value name of the corresponding command.
f. Right Click the value and delete it
g. Create a new value with “Expandable String value”
h. Name the new value the name you remembered at step e.
i. Set the command you remembered at step c as the value data of the new value.
For details visit KB982591.