I've frequently thought over the problem of how to deal with difficult people. Steve Pavlina offers a lot of good advice. I'll try to summarize his ideas and add in a few comments.
There are some general considerations that come into play no matter the situation. You should keep your cool. Make believe that you are the Buddha or St. Francis, or [insert-name-of-famously-patient-person]. Set boundaries as Steve Pavlina explains in his post "Dealing with Difficult Relatives." If you constantly allow another person to step over your boundaries, you really shouldn't expect anything to change. This goes for all relationships whether parent-child, teacher-student, coworker-coworker, etc. If your mom calls you at all hours of the day, don't pick up the phone during your work hours. Call her back only at appropriate times of the day.
A specific topic is how to get a difficult person to change. I think Steve Pavlina's post "Dealing with Difficult People" explains the main methods very well. Point out the person's bad behavior directly. One can also try behavioral conditioning. Maybe a good analogy to use is to act like an animal trainer (ala the famous New York Times article "What Shamu Taught Me About a Happy Marriage") or a kindergarten teacher.
The trickiest problem is dealing with relatives and family members (people you can't "get rid of"). As Steve explains in the post "Understanding Family Relationship Problems", people often try three approaches. Usually, you first try to get the person to change. When that doesn't work (frequently the situation when you are dealing with so-called elders), you get frustrated. Next, one usually tries the approach of accepting the person for who they are. I read Meditations by the Roman Emperor Marcus Aurelius (basically a journal of Aurelius's random thoughts) and thought I would treat difficult relatives like stabbing yourself on a prickly cactus. You don't blame the cactus, right? That doesn't seem very satisfying in the long run because while you don't blame the cactus, any sane person would avoid constantly walking into one (which is what it feels like when you constantly deal with an obnoxious relative).
In addition to accepting that the person won't change, you have to change your own attitude. An annoying relative should not be treated any differently than a difficult colleague. After all, as Steve says, would you accept that kind of behavior from a complete stranger? The problem with that perspective is what if you still want to "love" the person, what if you don't want to give up your close relationship? In my experience, you have to strike a compromise. You have to distance yourself in order to protect your self-esteem and personality, and give up the idea of a full relationship (such as you might have with your spouse). I don't know if this is a good analogy but there are parents who raise autistic children (which must be incredibly frustrating) and somehow they find a way to cope. Maybe you have to treat the relative like a person with an unfortunate physical/mental condition. A final note, don't allow the person to attack you with the guilt card. Recognize each attack and point it out to the person.