We all know by now that System Center 2012 Configuration Manager is a client-centric product. Meaning that, while it gives us admins some power over the system to perform certain tasks, the user is ultimately in control of their device. One way this is acheived is by the inclusion of "Business Hours" on the client.
I'm not going to go into too much detail on how Business Hours works along with Maintenance Windows, instead please see this wonderful blog post from the MS Server and Cloud Platform Team:
Basically, regardless of the Maintenance Window the power is truely in the hands of the end-user for mandatory deployments. Lets say, for example, that you have an OOB patch that must be pushed out immediately ... soo immediate that you bypass your maintenance windows in order to do it. If the time is within the Business Hours of the machine (by default its 5AM - 10PM) then the user gets to decide if the installation happens immediately, or if it posponed.
Depending on your patch deployment framework, this can have some serious rammifications if your maintanence windows don't jive properly with Business Hours. Whats worse is that since Business Hours is a client-side ONLY setting, you can't set this via the ConfigMgr console.
- BUT -
You CAN set this via VBScript or via PowerShell. Rather than rinse/repeat, here are links to two blogs that outline how to do this:
VBScript (Piped through Google Translate)
Given the nature of this I would suggest applying this script at logon to ensure that all systems get updated with an appropriate time. It should also be added to your Task Sequence so that reimaged systems start with the adjusted Business Hours.