The term "migrant worker" is more commonly used for people from poor countries working in a richer country, whereas "expat" is typically used for people from stable, first world countries living in a poorer, non-western country.
I'd say that every co-worker is a colleague, but not every colleague is a co-worker.
The usage depends on context. Within a company, my co-workers would be the people on my team (and likely, people that do a similar job to mine).
When talking to friends about my job, I could refer to all people at the company as my co-workers.
Colleague either is someone you work with in the same team, department or company (again, depending on context) but it can also be someone who works in the same industry or who has a similar job.
The prime minister met his European colleagues at the summit this Wednesday.
In this case, he met prime ministers from European countries. Not people he works with in the same team or office or government.
In that context, the words counterpart is sometimes used when we refer to a specific colleague:
The British prime minister met with his German counterpart on Friday.
Again, these two are not co-workers, but the are colleagues.
If I send out an e-mail within my company to invite you to have a drink with your colleagues, I mean your co-workers; people that work at the same company, maybe even ones in different jobs.
If I create a facebook page where, say, Java programmers can meet their colleagues, it means people that all share the same (kind of) job, not co-workers.
Best Answer
A general term for a worker to describe both of these would be a handyman. Any construction worker would be happy and likely able to take on a small task of a carpenter. But a finish carpenter's job is to make the woodwork of the home look spectacular, no mistakes or bruises, a very specialized skill. A carpenter would generally only work with wood but either of these profession would be happy to take on any task given them, within the restrictions of Union Laws. There a carpenter may not be able to nail down a shingle if it is not made of wood.
The head construction worker would make the plan but everyone down to the man who fetches the nails could certainly be given the title of a construction worker. Which one is used more often depends on who is filling up your house. I would say most are construction workers up until the end when the wood needs to look its best.