As weird as it may seem (and nonconstructive): the biggest tip off is your gut feeling. Trust it, and you are usually good.
But what about only email correspondence? It's harder to get a gut feeling about this. What I would do for projects is to try to do a dry run in my head and on paper. I used to make diagrams, even for network layouts and programs, that would help me gauge the time and potential for change. The above tips are excellent as well, but it may be too late for some of them.
As a freelancer, do not be afraid to ask other professionals in your area what it's like to work for the company. Ask questions such as "Was it easy communicating with Mr X?", "Was there ever a problem getting through a project with Ms Y?". Word travels fast between contractors if you build yourself a little network of people you trust. There is nothing wrong with working with other people in your industry too, as long as you aren't stepping on each other's toes.
Now, what about new companies asking for work to be done? This is the most dangerous, but you could also be setting up a reputation for them, as well as for yourself. Take it with a grain of salt, but also protect yourself. The scope of work will be your friend, especially once it's signed. Check other questions on this site for how to write one or where to download sample contracts that you can tweak to your needs.