A flexible model like agile can be applied in scenarios like, when:
New changes need to be implemented in between development cycle
Working on complex and bigger projects
There are long term goals and no bound on requirements
Have to quickly launch the product to market
There are frequent changes throughout the development cycle
There is no limit on time and budget