Not surprisingly, this thread runs into more than a few pages.
Looking at the third post here, this is my take on the issue. Sehwag is more successful in Tests despite his style, because Tests actually give him more time to play a big innings. He can afford to take a break for a few balls in a Test innings, because a four-ball or six-ball is always around the corner. That's not possible in one-dayers, as a dot ball is a wasted opportunity, which can haunt the team a lot.
Maybe he knows this, and that's why he bats this way, but he isn't taking enough singles. He's trying to hit a boundary off nearly every ball. If he played an ODI innings like in a Test, he may have been a lot more successful.
What hampered him further was that there was nobody in the Indian side in the year 2004 who could hit the big shots with the regularity that he could. That put excess pressure on him to play the extra big shots to make up for the lack of power in the team, and it triggerred a long slump in form. Although we saw Dhoni come in the team and Irfan put the long handle to good use, and even Powar or JP Yadav getting a game at times, he played like a pinch-hitter for far too long. Frankly, no batsman can be successful in ODI's if he's averse to running extra singles.