i started a new job 3 months ago.
prior to that i had worked at the same company for 5+ years right out of school, being underpaid for my current experience, doing high level C++ with systems that had been around for 10+ years already, commuted about 50 miles a day, had to be there at 9pm and leave at 5:30pm, and had a micro manager who got on my nerves.
now i'm working a job doing primarily C++ with some XML, SQL, Hibernate, Perl, and some other small things where I'm learning a lot, can take public transportation to/from work, have flex hours, got a clearance, have my health/dental insurance 100% covered by the company, and received a 25% pay raise over my old job.
i'd say i'm extremely happy in my new situation
EDIT:
i don't know if this has anything to do w/my overall happiness of my current job and learning new stuff, but i am also working on iphone development on my own spare time, something i never even considered while working at my old job. never once did i ever think about programming on the side for my own/fun.