OK, well because it works in safe mode, it probably means that their is a process running that is causing this, one thing you should try is see if their is anything wrong with your dxdiag (it may show a problem in the display tab), if it shows no problem, go to run, type dxdiag and on the first tab their should be an option used original boot sequence, do this.
Another thing you should try is as quantos said press F8 when Windows is starting up and say Last Known Good Configuration.