“Has been” vs. “was”
"Was" is the correct word to use. Why?
If we were to rearrange the sentence a little, we would see why:
- The USA has been a British colony for many years
- The USA was a British colony for many years.
Example 1 indicates that the USA is still a British colony, and has been a British colony for many years.
Example 2 indicates that USA used to be a British colony, but possibly is no longer.
Thus, "was" would be more appropriate in this case.
For many years, the USA was a British colony.
Nothing wrong with Thursagen's answer, but he doesn't give an important (I believe) part of the explanation:
The perfect (or present perfect) is used when the situation has some sort of present relevance.
It is therefore not normally used of a situation which has ceased, and so would not be used in your example.
It can however be used of a completed situation which is being viewed as one of a series which continues to the present, so
The USA and the UK have been at war twice since 1776
is grammatical, since the period from 1776 during which they could in principle been at war is continuing. On the other hand,
*The Austro-Hungarian Empire has been at war many times
is distinctly odd, since the period of which the Empire could have been at war has definitively finished.