No amount of control of my environment will put me in the zone when I'm working on boring code. Crud framework? I'll be reading HN while going through the motions. Code review? Time for some stimulating music (though not too stimulating, I do need to pay attention to the code review).
But give me something interesting - a real challenge - and I'm able to get into the zone, the hours flying by like they were minutes. My brain has to be able to fully engage with the problem to hit that zone.
Of course, I'm a technical lead in my group, so the ability to control my environment is limited. So I get up absurdly early just to get work done before I have to be available to be interrupted.