It could be any number of things.
Do other machines at your company have the same problem, or just this machine?
Does it still happen if you stop the Exchange services before you reboot the machine?
If you force the server down, then the Exchange service is going to have to cleanly mount the Exchange database when the server comes back online which could explain the long bootup time.
Is Exchange installed on a domain controller? If so, I would recommend demoting the server to a member server. There is a known issue with Exchange taking a really long time to startup and shut down when it is running on a domain controller.
Besides Exchange, what other applications are you running? Are you running an antivirus product not designed for Exchange? If you are running the Exchange on the DC, definitely go with the option to demote the server to a member server or you may need to modify the regisitry to delay the start of the Exchange services til the AD components are up and running.
You may want to download a demo of a great product I use quite often from Quest. They have a product called Spotlight on Exchange which will show you what’s happening on your Exchange Server. Give that a try.