It's one of the worst contracts I can think of (as a Phillies fan bitter about the last 7 years) but there's some unwarranted hate in here and some just totally false statements.
Dude had 4 straight seasons, from 2006-09, with 45+ HRs and 135+ RBI (he hit .313 in 2006 too), and in 2005 he only played 88 games cause the Phillies still had Thome and he had 22 HRs and 63 RBI. In 2010 and 2011 he had 31 and 33 HRs and 108 and 116 RBI.
He was no slouch. He struck out a ton, and only hit over .300 one time in his career but he was the prototypical clean up hitter, that was to be expected.
The Phillies overpaid too late in his career, but it was a loyalty contract, he was a huge part in bringing in a winning culture and winning the WS in 08 and going back in 09 and losing to the Yankees.