There could be many things why this is occurring.
You could have a device driver conflict, or your devices may not be getting recognized soon enough. Or more likely it is a software conflict.
One of the easiest things to try is to go to start---run-------msconfig-------startup and untick everything. Apply this and it will ask you to reboot.
What are things like now. If it is better then you could go back to msconfig-----startup and retick them one at a time to see which program or startup that is causing the problem