Although this is somewhat cynical, I would argue that the only way to tell a freedom fighter from a terrorist is by deciding how much you agree with the goals for which they are fighting. When we agree with someone's goals, we call them a freedom fighter. When we disagree with their goals, we call them a terrorist.
One example of this is the way we have seen Muslim fighters in Afghanistan. When they were fighting against the Soviet occupation, we called them freedom fighters. Now that they fight against us, we think of them as terrorists. This is because we believe that the Soviets were an occupier who should be resisted while we are simply trying to help restore order and stability to Afghanistan.
Ultimately, it is all in the eye of the beholder.
This is a very sophisticated question. A lot has to do with a person's worldview. Perhaps the best way to get to this question is to give an example. If you take someone like Osama bin Laden, we in the West would consider him a complete terrorist. In fact, we would consider him a terrorist of the highest magnitude. However, radical Muslims will see him a freedom fighter.
The reason for this is because they have a different worldview. In their worldview, he is attacking an enemy. This worldview is rooted in their religion and their view on what is happening in the world. They have a perspective that says that America is evil. So, we need to say that perspective and cultural context is important.
With this said, there is something else. It is also important to consider who gets harmed. If there are innocent people who are targets, then in my opinion, we are dealing with terrorists. War should be conducted without the lives of civilians.