Another Agile project screwed because of fools who don't understand what it is meant to be about
"The reason for this was threefold: (i) to avoid incurring costly changes to the software during implementation; (ii) because changes to the original software can be time-consuming and risk implementation deadlines; and (iii) to ensure the system stays on the upgrade path to avoid high service costs after implementation."
(i) You are meant to expect to have to make changes during the implementation. And manage them on your constantly changing plan. That's why it's called "agile", because that adaptability is built in to the philosophy.
(ii) If you can't make changes because they're too time consuming, then you can't run it as an agile project. It's just monolithic software, probably very badly designed and written. Deadlines should change as requirements change : you can't have a fixed deadline agile project.
(iii) With agile, you're supposed to implement only what's required now, not hypothetical future scenarios, as they are the worst reasons for projects massively overrunning or getting so overcomplicated that they're hard to change. Being overzealous about this is one of the shortcomings of people who view agile as a religion in my view, as sometimes it's fairly obvious what the future will involve, but there's no rule to say that you can't incorporate a bit of time for extending software to ease future extensibility into your agile project plan.