Okay, so after about four hours of testing, I finally discovered the fix. Good news it has zero to do with jQuery.
It actually was caused by CakePHP. The actual JSON values were being created in a Cake view which was outputting it for the Ajax callback. What I did not realize, that if Cake is in a debug mode of anything other than '0', it appends view output with the execution time, like so: <!-- 0.7965s --> Firefox did not mind, but IE 6 and 7 weren't having any of it. My first fix was kinda grody: {"content": "test"};// This essentially added the semicolon that IE wanted to see, and commented out the execution time. Then we discovered from IRC that we could turn it off by setting debug to 0. But that's a global change, so I ended up adding the following line to the controller calling the view: $this->render(); exit; And their was much rejoicing.