2017 Note: This original answer is correct in relation to Modernizr, html5shiv and HTML 5 elements in IE 9 and under. Do you even need IE9 in your project? IE9 and under accounts for ~0.50% of usage. These browsers are not even supported by Microsoft anymore and have not been since January 6, 2016. Head to "Modernizr Download Builder" to appropriately build and setup your Modernizr file and base HTML page. If you don't need this old IE support, drop html5shiv and drop the need to stick it in the HEAD
.
Original Answer
It's a suggestion and should generally be used; however, the case of including the modernizr.js file to enable HTML 5 must be done before the body tag. As such, you should ignore this suggestion. Per Modernizr docs ("Installing Modernizer"), for best performance you should stick them after your stylesheet references.
If you're using modernizr's included yepnope.js to conditionally load scripts or doing any other sort of setup that can go before the closing of the body though.