@Stuart: I don't know if it has to do with the actual DC running Windows Server 2008 or just the schema change, but as you can see above I had a ton of issues getting this to work in Outlook 2010 Beta w/Exchange 2007 and Windows Server 2003 R2 domain controllers. This past week I updated the first production DC in our forest (which is also at my site) to Windows Server 2008 R2. I didn't even think about this issue so I didn't test between the schema change and the DC upgrade, but when I fired up Outlook 2010 for unrelated reasons, I found the pictures suddenly working! I'm pretty sure I didn't change anything other than the DC between the last time I noticed it not working and when it started working.
So, if anybody's interested in it, the VB.net code I've posted above will set the thumbnailPhoto. Oh, and the PHP code I worked will only work on browsers that support inline images, which does not include Internet Explorer.