I've played a bit and with my test file, I can make the slide work in four different ways:
1) Make the trigger (in this case, it is an <A> tag) use "display: block" instead of "display: inline-block".
2) Add text to the <A> tag.
3) Wrap the div in anything (already mentioned in this ticket)
4) Add an empty comment before the div I'm sliding.
The slide_test.html displays various things I wanted to see while it slides the things around - there's a window.setInterval(.., 1) in there, so it isn't overly nice to your CPU, but the updates are pretty. There's also jQuery code to implement the 4 fixes in my test page.
I noticed that the bad behavior is if the previous element exists, and didn't see any change if the following element existed or not.
I've also made a jQuery plugin to fix this problem for IE8, but I don't know how nice it will be. Whenever an element is scanned for :hidden, it will check if the previous element either doesn't exist or if it isn't a comment. If it is deemed in a "bad" scenario, it will prepend a comment to the element we are testing. So, if you do $(':hidden'), you will get a TON of comments added to your DOM. Not ideal. If the browser is not IE8, the plugin doesn't change anything.
I hope this information and maybe the plugin can help to find a better solution for jQuery 1.4.3.