Summary:
John Locke needed to die so the MIB could take over his body completely.
Theory:
In season one, JLocke went alone to hunt boar. On the hunt, the island lead him to a field where "the monster" confronted him. In the next few episodes, John talks about destiny, and how the island has called him here, and how he has "looked the island in the eye, and it was beautiful".
I believe he was taken over partially from that first encounter. MIB has been using Locke, but he has been resisting, unable to understand what his true destiny is, just that he needs to be on the island. He has internal conflict. Whenever we see Jack chasing his "apparition" of Christian, out comes Locke from nowhere. When Jack falls down the cliff, out of nowhere comes Locke to rescue him with ease.
Now I have only just started rewatching the series again, so I don't know all of the possibilities, but could this be why John hears the voice in the cabin? John spends time in the cabin alone... he knows about the island, and he convinces himself that he must die to bring them all back.
The whole point of John dying is so that MIB could take over his body completely. There is no way that John would have killed Jacob, so MIB needed to get rid of John completely.
Does this make sense? Are there any other times that you can remember that help to back this theory up?
Maybe this is just obvious, but I didn't realize it until now (at work!) haha.