Firstly, you don't need to remove the battery to force a shut down. Instead, press and hold the power on/off button for a few seconds.
The next thing is to identify what is causing it to freeze - and I would start by running msconfig and looking in the start-up list. Deselect most programs that are launching and see what difference it makes. You can reintroduce programs one at a time into start-up (assuming you want them running) until you identify what is causing the problem.
Start/Run and type 'msconfig' in the box.
You could also consider installing Startup Delayer from here: click here
This program allows you to set a delay between programs as they launch on start-up. That prevents the situation where Windows tried to launch all them at once, resulting in a 'bun fight' between programs trying to get processor/memory use. A common cause of freezing on start-up.