People who find out that I'm self-employed usually have one of a few pre-conceptions about why I'm doing it. They're usually wrong.
One misconception is that I've decided to somehow get fabulously wealthy working for myself. Another is that I did it to just to work on cool things. Those are both worthy goals, but they're not the main reason I decided to start my own company and do contract programming.
It's all about disconnecting. There's too many companies that I've worked for that have screwed the pooch. It's no fun to bust your butt working for a place, only to have management decide to kill off the project you're working on just about the time it might show some promise.
Or even worse, you're told to work on a project that's doomed from the beginning.
So I started my own company, and I mostly contract my services out. Once in a while I get to work on a cool project that makes me feel good. Most of the time, I'm slogging along on something that'll be a nice addition to a few people's lives, but isn't going to do anything to really change the world, and isn't even fun to work on.
Because I'm a contractor, rather than an employee, my emotional investment is less. I can walk away. Or I can continue to slog along, repeating the mantra
I'm paid by the hour. It ain't perfect, but it sucks less, and sucking less is a goal I can live with.