(Spoilers Main) How is GRRM so good at getting us to forgive his characters?

I've realised recently that some of my favourite characters in this series are the ones who've done pretty horrific things - Theon betrayed the North, lead the Ironborn in raping and pillaging along the Stony Shore, and killed two innocent children to avoid embarassment after losing Bran and Rickon. Jaime pushed a seven year old boy out a window and slaughtered Ned's men as revenge for Tyrion being captured (unharmed). Stannis killed his own brother, would have killed Edric Storm and likely will kill his own daughter all to aid his cause.

In any other series these actions would make the characters unforgiveable, universally hated villains, yet GRRM manages to write them so well they're often fan-favourites! What do you think it is that makes his characters so easy to like in spite of the evil things they've done?