1. Usually the boot time thing can be laid directly at Windows feet more than anything else.... things such as you have described are oft solved by a fresh install.
2. Have you disabled Windows ability to install hardware drivers, If not, do so.
3. Have you routinely defragged the HD ? If not, do so.
4. Have you run Disk CleanUp ... yeah, ya know what comes next