J.,
I agree that a routine is essential. But I'm a bit of an odd duck when it comes to bedtime, b/c both my children function best with lots of sleep. In fact, in America, most kids absolutely do not get enough sleep. 2-yr-olds need 13 hrs of sleep. If your son takes an hour nap during the day, that means you would need to put him to bed at around 6:30pm. I know this seems very early to most people, but my 5 & 7 yr olds still go to bed some nights at 7pm, b/c they still need 10-11 hrs of sleep at night, and they get up before 6am. They are much happier, learn easier, and have much fewer melt-downs when they're getting enough rest. It's quite obvious in their behavior, when we've had to short-change them that needed sleep.
The best thing I learned when my kids were young, is that you have to make sure you put your child to bed during the magic hour BEFORE they show signs of sleepiness. If you wait until they're really sleepy, you've pushed it too far, and their adrenaline will kick in (just like ours does when we have to stay up late), and will keep them from settling down. So starting early is essential. If your son starts getting sleepy at 7pm, then start getting him ready for bed at 6:15pm. I know it's tough, especially if you work late, but it's so good for our children's health to prioritize sleep.
Good luck and God bless,
M. B