At the end of Act IV in Diablo 3, before getting to Diablo, we have to fight a once-again demonic Izual. How did this happen? Didn't we free his soul when we killed him in Diablo 2?
It's worth remembering that even after defeating Izual in Diablo II, he was never really redeemed - in fact, he took the time to give some extra villainous speeches in spirit form.
Tyrael was a fool to have trusted me! You see, it was I who told Diablo and his brothers about the Soulstones and how to corrupt them. It was I who helped the Prime Evils mastermind their exile to your world. The plan we set in motion so long ago cannot be stopped by any mortal agency. Hell itself is poised to spill forth into your world like a tidal wave of blood and nightmares. You and all your kind...are doomed.
Further, we know that it's extremely difficult to get rid of an angel or demon's spirit just by killing them - Tyrael took a mere twenty years to reform his body after being caught up in the destruction of the Worldstone, while our good friend Diablo and company persistently refuse to stay down.
Though I don't believe it's fully explained how he returned to form - his original fall is mentioned in the Act IV lore books, but I haven't found one detailing his second fall if such a thing exists - it's certainly not outside the realm of possibility that at some point he returned to the Great Evils again, or that Diablo specifically sought him out on his joyride to go smash up the High Heavens.
The lore in Diablo 3 seems to deliberately leave this as an open question. "Izual's Descent" implies that Izual's body was expected to reform as an angel and return to heaven, but did not:
...Tyrael claimed that [Izual] was slain years ago, but his replacement has never emerged from the chrystal arch.
I'm tempted to say based on Izual's spirit mocking the angels and claiming responsibility for the prime evils' plot to take over Sancturary in Diablo 2, that he did not reappear in heaven because his spirit was no longer angelic, but given that the lore in Diablo 3 seems deliberately vague on this point, it's possible that the story behind Izual's failure to reappear as an angel might be planned for a future expansion.