Gordon is not fighting because of the contract, if this was a real life situations he could go to the combine and get shot if he wanted this to be over.
The thing is that Gordon Freeman is you and you are Gordon Freeman so if you play like a hero than you are a Hero. The whole half life game is made so that you can step as Gordon Freeman. So it’s your desicions that shows if Gordon/You are a hero or a vilian (sorry for bad english ;D) :freeman: