I am all for providing flexibility for users in their interface, because I know that users are different, and want to find things and process things in different ways. This is especially the case when the application is providing a service, product or facility.
The application I am currently working on, however, is a process-based work environment application. Its purpose is to enable and monitor a specific process workflow to achieve a successful task. I should point out that the UX would make most UX peoples skin crawl right off their body, something that is not entirely within their control (client demands putting restrictions on the possibilities). However in this scenario, I would rather see a more rigorous approach to requiring processes to be done in a specific way, because this is management of a workflow.
There seems to be a view that, while the core workflow processing is restricted and rigid, within that, there is a desire to do all sorts of things 2 or 3 ways, not out of a sense of user flexibility, but because "it is a mouse click less". The cost is more maintenance if and when things ever change. The core code does not, as a whole, lend itself to easy adaptability - just one of its issues.
Question - is it right or acceptable within a workflow process to require individual processes to be performed in a particular way? Given that the application is about managing a rigid process, surely enforcing this is valid in this case? Especially as the users will quickly get used to the way of doing things - it is not like I am making thinks complex, just wanting to enforce a process path.
As an example for comparison, most e-commerce sites enforce a process path for a checkout, even though the catalogue search is/should be free and flexible. The checkout process needs to be rigorously enforced to ensure that the right details are obtained to get the pricing correct, and deliver the item or service.