I saw this question and it really shedded some light. Despite this, I can\'t seem to figure out how I\'m \"improperly\" loading my shader, because this has executed
My guess: I've seen the glLoadMatrix() calls in your code which basically means you're using an outdated (pre-3.1) GL API and do not initialize the GL3.1 Core Profile context correctly.
This leads to the situation where your context does not support the GLSL1.50+ and the "location" attributes (thus the error from shader compiler).
Try changing the initialization of GL and then check the glBindAttribLocation calls. Avoid using the glLoadMatrix stuff - use shader uniforms instead.
Look at opengl.org's site: http://www.opengl.org/wiki/Tutorial:_OpenGL_3.1_The_First_Triangle_(C%2B%2B/Win) for a GL 3.1 context creation sample. It is a little different from GL2.0-