The fact is that football transfers are always going to be a mixed bag. We only notice when other teams get it right, so we get a skewed perception of how successful we are/should be compared to others.
The contract length is going to depend on the player. Some players will want a short contract because they feel like their current club is a stepping stone, others want long term security. Then you have the opposite from the clubs perspective, as they will want to keep good players tied up for as long as possible, but only offer short term contracts the the riskier players. You then have multiple clubs competing for a player, so they have to make concessions, by either offering more money or a more favourable term.
That's a heavily simplified version of what goes on, as theres a million other factors such as location, agents, league position, playing style, what the facilities are like, etc.
Signing shields, woolery, Kelly, Tierney, et all to 3 year deals was looked upon favourably by most at the time. A longer deal gives players time to settle, and protects the club in that it prevents other clubs from pinching our players immediately after a purple patch. You never know how it's going to turn out, but hope that more work out than don't.