In HP & the Order of the Phoenix, Harry chased Bellatrix Lestrange after she murdered Sirius Black. He used cruciatus curse on her but it was not really effective.
As Bellatrix said:
"You need to mean them, Potter! You need to really want to cause pain... to enjoy it... righteous anger won't hurt me for long... I'll show you how it is done, shall I? I'll give you a lesson —"
Later when Amycus Carrow spat on Minerva McGonagall, Harry used the curse splendidly.
As Amycus spun around, Harry shouted, "Crucio!"
The Death Eater was lifted off his feet. He writhed through the air like a drowning man, thrashing and howling in pain, and then, with a crunch and a shattering of glass, he smashed into the front of a bookcase and crumpled, insensible, to the floor. "I see what Bellatrix meant," said Harry, the blood thundering through his brain, "you need to really mean it."
Harry Potter Wikia attributes this to lack of sadistic feeling in Harry.
But still it makes no sense. Harry should have had more desire to cause pain after murder of his godfather but he was only able to knock Bellatrix off her feet. Wikia however also suggests that Bellatrix was probably less affected by the curse due to her lack of conscience and being a sadistic person herself but somehow I don't feel it's quite right.
Only rational explanation that I have been able to give myself is that the war-time environment changed Harry Potter from a young boy he was in HPTOOTP to a grizzled veteran by the time of Battle of Hogwarts & somehow his sense of emotions was also affected by it.
Could it be that Harry liked McGonagall better than Sirius and thus was able to channel his anger better than he did in Ministry skirmish? Is there any better explanation?