we recently had an issue when implementing Optimizely with a website that makes extensive use of Modernizr, too.
An article in the knowledge base sais the snippet should be implemented in the top of the head tag.
So, maybe it should be “but after the charset declaration” for modern web pages, just to be sure (untested: could this also be helpful if the script contains text with special chars like umlauts?). I found that if you are using Modernizr and thus many HTML tags filled with classes and stuff, it nearly reaches the 1024 characters limit for charset definition. (if charset is not defined, POST of a form will destroy characters like umlauts)
It clearly is not an issue of Optimizely at all, but I think this info could nevertheless help prevent form errors.
Also, there is another benefit of implementing the snippet a little deeper in the DOM - after meta tags and maybe the basic stylesheets (Optimizely overrides them anyways).: The white screen flash when loading the script before any other content disappears. We had a clearly visible delay, which disappeard since we fixed the issue.
Just a suggestion -
Image example of the issue: