Google has the answer for you, but my conclusion is the safemode=0 flag (if it exists) is stored in a config that isn't being removed on your system after you disabled it the first time. However for Halo if your PC is above the recommended system requirements it doesn't popup with the safe mode dialog, try the below steps.
Go to where your Halo icon is, like in your Start Menu or on your Desktop.
Right-click on it.
Under "Target:", you'll see where your halo.exe is. At the end of that, put -safemode. Like this:
"C:\Program Files\Microsoft Games\Halo\halo.exe" -safemode