My youngest will be 3 in March. Isn't it fun!!!
There are a couple of things that I notice really help. Of course I usually notice these things in retrospect :-)
First, make sure he's getting enough sleep. Overtired 2 year olds are so emotional and frustrated. Nothing pleases them, and you just have to be insanely patient to get them to finally calm down enough to relax and allow themselves to get some sleep. I hate it!!! It is often unavoidable, but we do try to make sure he always gets his nap. Everyone is happier when he gets his nap.
Second, "feed the monster" is a common phrase in our house. There are certain behaviors, not too different from the overtired behaviors, that make us start looking for food. Seriously, make sure he gets something to eat every couple of hours.
Finally, stay as calm as you can. Yes choices are important, but there are times when they really aren't possible. When I know I can't give him a choice, I say very matter-of-fact and without emotion, "It's time to get in the car," or "It's time to go inside." When we're at the grandparent's house and need to go home, it's usually, "Let's go home and see Daddy," or "Let's go home and see the cat," if Daddy is with us.
I do give 5 minute warnings. "We need to leave in 5 minutes," or "We're going to get out of the bath tub in 5 minutes." Not that he can tell time, but it gives him time to adjust. It's not even always 5 minutes. Sometimes it's really 2 minutes or something distracts me and it's 10 minutes. Right now, he doesn't notice. Eventually I'll have to be more accurate, but it works for now.
Hang in there!!! You're not alone :-)