When dealing with IE, you should always put this tag in your head section:
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
to instruct it to use the best inbuilt standard mode available.
The second part of the equation is the DTD: IE acts in strange ways when parsing pages with different DTDs; Wikipedia has a great list of what happens in each case, then for IE8:
4.01 Strict with system identifier: Standard
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
4.01 Strict without system identifier: Standard
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
4.01 Transitional with system identifier: Almost Standard
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
4.01 Transitional without system identifier: Quirks
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
HTML5: Standard
<!DOCTYPE html>
And so on with XHTML and others. I strongly suggest you to use the HTML5 one.
Since I've no IE8 available to test it, it's a long shot... just try with IE=edge
and HTML5
doctype and let us know.