Caine, Eckhart and Oldman were all better in their roles than Ledger. I don't think they really deserve the nod, per se, but they deserve it more than he does. Eckhart had the most demanding role of the three, and he really showed the serious edge that I've been waiting for, since seeing him in 'Thank You For Smoking.' He rolls with the cocksure, confident nature of Harvey Dent, so well. And when his time came for the turn, his pain was right there, palpable, making him an incredibly sympathetic Two-Face.
Caine and Oldman both show the fact that they're 'old hands', taking relatively simple parts and imbuing them with life and heart. Caine especially brings the fatherly sensiblity that Alfred has been lacking in almost every interpretation, (besides B:TAS). Oldman's Gordon is a beacon in a sea of corruption and I only wish he had a Bullock to play off of. Seriously. That's the only flaw in his performance, at all. Both of these guys just do every little thing right.
And Ledger... wasn't bad. But his character had no depth, it required no skill. It was just "recite cool monologue in a threatening way" mixed with "black humor".
I'm not saying I didn't enjoy Ledger's Joker, because I did. It's one of the best adaptations of the character I've ever seen, but all the same, it's not as good as most people would have you believe, either.
(To be fair, Ledger was far more on in this film than Bale was. Bale is a tremendous Batman, but this felt like a HUGE step down from him, compared to Batman Begins.)