A simple answer would be that Often we use many programs during an entire uptime of a PC (the actual time it has been running before the last reboot or restart). Programs allocate memory (RAM/Virtual Memory) and hard drive space, during installs,write to the registry and so on.
More times than often, resources that contain these program files, don't always get along, conflicts arise...patches have to be created and applied to make everthing run smoothly again.
Overall, (Too late at this point for short and to the point) Initialization occurs on REBOOT, initialization of DLL's, VXD, and EXE's, and they can set things into a different set of motion each and every time.
Paul