Ok, first thing you want to do is try to isolate the problem program(s). Keep in mind it could be a driver issue as well, so this might not provide the solution but will help isolate the problem itself, at least remove some possibilities.
Start>Run
Type "msconfig" without quotes.
Now select "selective startup" and remove checks from config.sys, autoexec.bat and Startup Items selections.
Hit ok and restart when prompted.
Do you find a change in the load time?
If you find that your load time has shortened to an acceptable degree, you will want to start adding items back one by one.
Start by checking the items you unchecked one at a time until it slows down again. When you find the "section" (autoexec, config.sys or Startup) that is causing the problem, go to the tab within MSConfig and individually add checks to items until you notice a slowdown in your startup time.
If you get to a point when windows will not start, just hit F8 just as the "Windows 98 Splash screen"comes up and select safe mode. From there you can remove the check from the item(s) you just checked in MSconfig.
Feel free to email me to gain more details as needed.
Good Luck.