Its a very frequent requirement that we have to enable/disable or hide a control based on some business logic. In one particular case, it had to be configurable by administrator as part of security and general administrative control of the site. This implied that it had to work with all the controls on the page with which user can interact and even some labels.