The key for us is using a timer. We have a 'strong willed' almost-three year old, and he hates transitions (unless there's a big reward or somesuch). Big tantrums.
However, we began around 2 using a timer. "Okay, son, we're about done with X activity. I'm setting a timer for 2 minutes; when it goes off, we're going to go [eat|sleep|do something boring]." Then, when the timer goes off, we show him the timer and point out the audible sound, and tell him it's now time to do [other thing] or stop doing [current fun thing]. He may still object, but he typically makes only a brief complaint at this point, and then does the next thing, even if it's something he doesn't care for, like bedtime.
It isn't a panacea, but it works most of the time, to the point that we no longer get tantrums much of the time when we do not use the timer - instead, we get "Timer please".
We also try to offer some element of choice in [next thing], if it's available; for example, if the transition is to go to eat dinner, the choice might be the chair or the plate/bowl type. In addition to that working in general for getting kids involved in things, it specifically is useful in transitions as it moves their focus from the previous activity to the new one in a positive/empowering way; it's sort of like saying to an adult reading a book, "Hi, now that you're done with that chapter, would you like to eat at Subway or Wendy's?" You're presuming the shift and offering them a choice after the shift, which takes away much of the argument against the shift.