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.
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:
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.