Expat is derived from the word
expatriate, and not
ex-patriot. I've seen the latter term used a lot of times. Where did it come from? I'm sure it doesn't apply to many expats, unless they've renounced all patriotic ties to where they were born or grew up - or patriotism altogether.
According to
Wikipedia: "An expatriate (in abbreviated form, expat) is a person temporarily or permanently residing in a country and culture other than that of the person's upbringing or legal residence." Now, a lot of Wikipedia entries aren't 100% accurate, but this particular one makes sense.
Another issue I've seen is the use of the term "expat" vis-a-vis "immigrant." It's said that a person from a developed nation who moves to a developing country is called an "expat" while the reverse is called an "immigrant." Both terms represent negative connotations to a number of people. Semantics sure is a funny creature.
Wherever you're from and wherever you move to, either permanently or temporarily, I don't think "expat" or "immigrant" or "migrant" or "a-person-who-moved-to-another-country-for-work-or-for-love-or-just-for-the-heck-of-it" are derogatory terms.