:first-child targets any element that is the first child of its parent. So in this example, every <img> is the first child of its parent <p>. It doesn’t matter that you didn’t include the ‘p’ in your CSS. So what you need is to target the image inside the paragraph that is the first child of the <div id=“slideshow”>.
I feel this is worth saying due to the fact you comment your HTML. In IE7 the first-child pseudo class is buggy. If you have a comment interrupting hte first-child, it will select the comment instead of the actual element you want. So be careful where you comment, in case you still have support for IE7 (which is still kicking :)).
Also note that if you dynamically add elements (CSS or JS), it won’t select that instead, so be wary of that. Not really applicable in your situation but as I was mentioning the comment bug to you, it seemed applicable to mention this other bug :).