I did support for a Fortune 500 company and typically all major changes were done on the weekend. There were two reasons for this,
- It supposedly gave the developers, Admins extra time to test the environment without everyone banging on it during the work day. They would bring in employees on Saturday/Sunday to help with testing the implementation.
The real reason was that the Production environment was so convoluted that there was not a good 'test' environment. The only way to make sure everything was going to work was to push it into Production and try patching and fixing things as they broke.
What ending up happening was all the basic stuff got checked in Production and they went with that. Come Monday, as the users got onto the system a ton of bugs were consistently found, which usually caused corporate wide problems.
I have not worked with a company yet that has been consistent about how they role out code into production, but usually it was in the evening hours because it interupted fewer people but those systems typically had little testing so always resulted in major problems the next day.