1. They aren't balanced through the corner (they don't like feeling like they're going to fall down)
2. They aren't balanced to the fence
3. Getting to the right distance to the fence
4. Getting hurt over the fence (hit in the mouth, back, etc)
5. What to do with his legs (meaning: doesn't really know how to jump)
6. Too slow through the corner and they feel like they can't get over the fence at that pace
7. Rider is fearful and causes the horse to be fearful
8. Horse is afraid of the jump itself (too many reasons to list)
9. It's too high of a jump then what they're physically prepared for
10. It's too high of a jump then what they're mentally prepared for
I could go on and on and on but I'll start with those. My guess is that your horse is not prepared to be jumping anything higher then 2 ft max right now. I cannot stress it enough, HEIGHT DOES NOT MATTER. It is QUALITY. The horse I've been working with that used to charge fences is incredibly scopey. My hope is for him to be my 3"6 horse, possibly 4" unless I sell him. I'm pretty certain I could hop him over a few 3" jumps now without it being an issue, but I won't. I'm going to take my time and let him get very very comfortable at 2'3-2'6, probably for the rest of the year before I start to raise the fences. This is a crucial time in his training for him to learn to use his body well and gain confidence. 6 inches doesnt seem like a lot but there is a TREMENDOUS difference between jumping 2'6 and 3'. Lots of people can jump 2'6, even if maybe they shouldn't be. No one should be jumping 3' unless they are absolutely prepared to. There is also a tremendous difference between jumping 3' and 3'3 and by the time you are doing 3'6 you should be a very accomplished rider. You can't be inaccurate, you can't be unbalanced or your will either 1. Get hurt 2. Hurt your horse 3. Completely screw up your horse. The fact that you have been jumping your horse 3'9 terrifies me and it is no surprise that your horse is charging fences. I'm sorry if that is harsh but I'd love to get my point across that you have got to lower the fences and work on the basics!
I was very happy to hear that you are open to trying a little dressage work to see if it helps and that it does seem to be slowing him down. Remember too that just because he is nice and slow at 2" does not mean you should raise the fences the next day. Like I said, I plan on keeping my horse at the 2"6 mark for pretty much the rest of the year. My desire to have my horse jump well and comfortably is much more important to me then my desire to jump big.
And just to add... I don't consider 2nd level to be impressive or contain "the most amazing dressage things". Yes, I am impressed by people who do it well but a horse that jumps 3'6 should at least be schooling 2nd level if not higher.