New Hampshire law stipulates (in section RSA 653:9 of the statute book) that the New Hampshire primary will take place at least seven days before any “similar election” in any other state.
The Iowa caucuses are not considered to be a similar election. In recent election cycles, the New Hampshire primary has taken place the week after the Iowa caucus.
Both have an inordinate influence in the primary system and neither has a history of being particularly loyal to the primary winners in the general election.
Part of the problem is that the sheeple greatly overrate the electoral importance of these states, albeit with a lot of help from the hype of the mainstream media.
That is why I see the only real solution as reforming the delegate allocation formulas to give more weight to states which hold their primary and caucus dates later. At some point, you would see an equilibrium when states stop jockeying for early dates.