A: 

Try not using innerHTML. IE historically does not allow you to innerHTML everywhere you would think possible. Instead try slower, clunkier DOM methods .appendChild(). For example, have the PHP return JSON or XML with the value/text pairs you need, then when you AJAX it do something like this:

PHP output (aka your http.responseText):

{value:"20100608",text:"date 1"},
{value:"20100609",text:"date 2"},
{value:"20100610",text:"date 3"},
{value:"20100611",text:"date 4"},
{value:"20100612",text:"date 5"}

JavaScript:

http.onreadystatechange = function(){
    if(http.readyState == 4){
        eval("var data = [" + http.responseText + "]");
        for(var i=0;i<data.length;i++)
            var t = document.createElement("option");
            t.value = data[i].value;
            t.innerHTML = data[i].text;
            document.getElementById("entry_7").appendChild(t);
        }
    }
}

I am not sure why you are experiencing the problem you are, but I am guessing it has to do with the innerHTML of a select element in IE. Try my above method and I'm pretty sure it'll work.

I hope this helps in some way.

tau
Note that you can work around many of these cross browser problems by using the popular javascript frameworks (e.g. jQuery, Prototype, Dojo etc). I've worked with jQuery, and you can just evaluate your HTML code directly to create things like this in a compatible way, e.g. if you can do something like $('#target').append('<span>hello</span>');
El Yobo
I should also note that jQuery also makes ajax stuff extremely simple; see the jQUery load() function (http://api.jquery.com/load/), which will do exactly what you want in a cross browser compatible way.
El Yobo
Ai Pragma
@Ai Pragma: oops! forgetting curly braces sometimes happens when i type things without testing. -_-; dont forget to choose a right answer! i love reputation points, but im happier that you have a solution that works well for the problem.
tau