回答
<原文>
The abandoned fort had been built many years ago by the army.
うーん、この英文なのですが、ご質問のポイントの前に(ひょっとしたら関連してるかもしれませんが)なんかちょっと変な感じがします...。
この abandoned fort が be built された時について、many year ago と言っています。
many years ago の ago は、今現在を基準として過去の時の一点を表すことばです。つまりそこにはいつからいつまでという時の幅はなくて、過去のある一点の時に、ということを言っています。しかも、agoについては、「現在を基準にして」過去の一点ということが非常に大事なことばです。この場合は、今現在から遡って何年も前の過去のある時の一点、ということです。
I read this book 3 years ago.
I have read this book x3 years ago.とは言えません。It's been 3 years since I read this book.とは言えます。
I had read this book 3 years before I moved to Tokyo.
一方、現在完了形や過去完了形は、現在や過去など、時の矢印の中の一点を表す時制ではなく、過去から現在にかけて(現在完了形)とか、大過去の一点から過去の一点にかけて(過去完了形)という、時の幅がある表現です。
ですので、この文章を時制について正しく表記するとすれば、
1.The abandoned fort WAS built many years ago by the army.
その廃墟と化した砦は、今から何年も前に軍隊によって建てられた。
もしくは
2.The abandoned fort had been built many years BEFORE by the army.
その廃墟と化した砦は、以前に何年も前に軍隊によって建てられた。
となると思います。
1はわかるとして、2はなぜわざわざ過去完了形を使っているのでしょうか。
過去完了形は、時制として、大過去から過去の一点にかけて、という時制の意味と、過去よりさらに前の大過去において、という時制の意味があります。
2.の場合であれば、解釈とすれば
その廃墟と化した砦は、過去よりさらに昔の大過去から過去にかけて何年も昔に軍隊によって建てられた(そして過去の時点で存在していた)。
という感じになります。
ここで ago ではなく before を使っているのは、ago は今現在から遡った昔の事であって、過去のことである過去完了形については使えないからです。
いかがでしょうか。