Pretty much agree with miga/LM, the dictionary definitions may be almost interchangable, but the connotations are different. The word "expat" is never used to describe someone trying to escape from poverty or war. The word "immigrant" is never used when Sony send a senior manager to Weybridge. Clearly there is a large intersection... e.g. Aussies in London (cultural refugees?) But it's based on circumstances, not skin colour.