In one of the cases I saw the software vendor had to deliver a new GIS system and this included also a lot of software development to add customized features asked by the client. The client wanted the software to be delivered in one go as it would have been useless if just parts of it had been delivered at each iteration.
The iteration approach would have made no sense as it took more than a year before they had something workable and the client did not have time to check the features added in each sprint.
The vendor however used Scrum for software development so it would have been harder for them to drop it. The vendor's management forced the usage of Scrum but all the customers needed waterfall.
The idea is that in many circumstances you can use Scrum to define your work, prioritize it and track it even if you do this internally and you don't deliver to the customer. This could work also in IT infrastructure projects, in each sprint for example you could define some tasks and perform them even if you don't deliver.