First post for me Woohoo! :)
I've been taking lessons for about 1 1/2 years so far, so I'm still very much a newbie and am still fighting through this as well.
One of the things I've be taught is to really know the chords, understand where your fingers are and where they need to be for the next chord. If one finger is in the same position for the next chord, use it as your anchor and let the rest of your fingers move to "meet the anchor" where it already is. Or even if it's only a one string or one fret difference in finger position. My instruction has drilled into me to find these anchor finger positions when changing the chords and it speeds everything else up.
This doesn't work for every chord transition, but it's helped me speed up my changes from Eminor to C for example. Or my D to an A or vice versa.
Nothing has helped my C to G transition except practice. And that's the biggest key I'm finding. When I'm practicing a lot, my transitions are faster and easier. When I go a week without touching the guitar it's like I've regressed 6 months in my skills.
And take Jim Scanlan's advice about chord jumping. My instructor gave me the same direction, to practice my chord changes without strumming. You can do it while watching "How I Met Your Mother" without annoying anyone else in the room. I've done this through an entire "chick flick" that I didn't really want to watch, but couldn't talk my way out of the room. I even had a metronome running through an earbud to help me. 2 hours, I didn't strum once. And suddenly when the movie was over and I grabbed my pick, my C to G transition was much better than before. My instructor speaks a lot about muscle memory when it comes to finding the chords and making the transitions quickly. This chord jumping seems to be one of the best things I've done when it comes to this.