Most clients know exactly what their goal is ("To increase market recognition", "to increase conversion rate", etc). The scope creep can only happen in a requirements phase[1]. Once a client has signed off on exactly what will be delivered, and what the payments milestones are there's no wiggle room for the agency to continue experimenting.
If you're skipping the requirements phase because "agile"[1], then the work will be over budget, over time and under the scope.
There's very few projects that actually require the exploratory-driven process that agile uses. If you have one of those projects then farming the management of it out to an agency is exactly the wrong thing to do.
[1] There may be multiple requirements phases. For example a large "need to revamp our website" project can be split into multiple serial projects, each with their own requirements phase.
[2] I.e. We'll figure out what is acceptable to the client with constant feedback.
It's a very abstract term. To put in simpler terms you will always have some outcome mismatch and generally your goal should be to reduce it. But if you do not have outcome mismatch, then you should push the line so that you can look ahead and understand future areas for improvement. Or you can just stay content if "market" is not chasing you.
Not only should we be asking if a project has achieved its original goals once it’s finished, we should be continually assessing progress against those goals throughout the life of the project - yet few projects I’ve worked on actually do this, even when I’ve explicitly requested it.
That's a very optimistic statistic, unless "fail" is defined to be something other than "the opposite of success".
IOW, a fail is any project that goes over time, over budget or delivers under scope.
If you're defining success as "well, we delivered eventually, and we delivered 80% of the requirements, and it only went over budget by 20%", then, sure, only 30% of IT projects "fail".