Let's go over how Agile allows this to happen:
1) As two week "sprints" or planned progress phases go on, user involvement is imperative and necessary. Client-developer communication is highlighted and emphasized to make sure that all business demands are met, as well as developer suggestions potentially being implemented with client approval.
2) The two week sprints allow for a relatively fixed time frame to see a certain amount of progress, so a client knows what to expect when.
3) Clients are engaged with developers and as such can test the functionality to ensure that it meets business demand.
With this level of engagement, level of continual deployment and testing availability, clients are better able to articulate incremental changes to the program. This prevents requested features from slipping through the cracks and helps speed the process of testing since there will be unbiased eyes (the clients') on the application throughout the development process.
Agile: A methodology for developers that is *really* for the clients.