You could contract different lines out to different companies. I think Tokyo does this.
At the very least, though, you could contract out the running of the whole system to a company for five years a time and let different companies compete for the contract every five years.
This isn't a panacea, but it can sometimes help if the main problem is corruption-induced inefficiency as it seems to be for most major cities in the US.