Here's the main problem (which is also applicable to other distances, but to a lesser degree):
You don't believe you can finish strongly if you run hard in the middle.
First of all, let's backtrack to the beginning of the race. Everyone has about 7 seconds worth of energy to expend in a hard (almost sprinting) effort that won't hurt the remainder of your race, whether it's the 800, 1600, 5000, etc. So I tell my runners to go out hard for 5 seconds - not going for the full 7 seconds provides a little safety factor, both physically and mentally. But at the end of that 5 seconds, you MUST dial back the effort. The key to doing this is to make sure you are not "racing" the other runners. You should still be running somewhat briskly, but you shouldn't really be pushing the pace. Other runners may pull ahead of you here.
Before you know it, you'll get to the 200m mark, and you should be hitting this at about your goal time divided by 4. I think of the entire first 200 meters as a part of the race to largely ignore, in that - as long as you run that first 5 seconds hard - it will pretty much take care of itself. You will quite likely complete that first half lap just how you want to.
The next segment is very short: simply the 100m of the second turn. It's the only part of the race that you should look ahead to what is coming up. As for any turn, you should shorten up your stride, and don't worry if you slow down a bit because it's only 1/8 of the race.
The most important part of the race is the next 300m, which I call "The Middle 300." Starting on the home stretch (with 500m to go), work as hard as you can. The key to this 300m segment is that you get two straights and only one curve, so it's a part of the race that you should be able to run fast. Many other runners will slow down here because they are thinking ahead to the final 200, believing they need to "save something" in order to have a good sprint at the end. But you don't have to do that because you WILL have a good sprint at the end; everyone can sprint at the end.
During this 300m segment, you must have the mindset that you don't care how you will feel in the future (specifically, with 200m to go). The reason you can do this is that everyone will feel very, very fatigued during the final 25% of this race. So you can either be the same as everyone else in terms of where you are time-wise and fatigue-wise or you can be several seconds ahead of them and feeling the same level of fatigue. If you need a goal to get you through this part of the race, try to beat other runners to the beginning of each curve. This is actually an important tactic because you don't want to have to swing wide on a curve to pass a runner that you are overtaking.
The final 200 doesn't take any special approach - just run as fast as you can. Don't slow down on the curve, but try to speed up by increasing your turnover rate. Once you hit the straight, run like a sprinter with the best form you can muster.
One final key point is to be sure to give maximum effort all the way across the finish line. The 800 and 400 are races in which runners can almost literally become paralyzed within a very short distance of the finish line. I have seen 30m leads disintegrate within 50 meters because the leader "locks up" and almost can't move.
Will you get passed in the final 50 meters? It is possible, and if it happens, you can rest assured that the person who passes you should have been even further in front of you than they were had they run more efficiently. That is, it isn't a case of you not running well, but rather a case of a runner who is markedly better than you who just underperformed.
Good luck!