Where are the images stored? (database or folder structure) If the PNGs are stored in a folder structure that separates images types it maybe a permissions issue.
The other thing to consider is that you have gone from Windows to Linux so you have changed your PHP code. vBulletin does some image processing and checking, so it is possible that there is a php setting that is causing the issue, although I can't think what off the top of my head.
Generally, beyond checking that the image is actually there, I'd be looking for a permissions issue either in the database or file system. Linux has better security than windows, sometimes this can be a PITA.
Sounds like a web server issue. Make sure the MIME type for PNG files is registered with your new web server. You can verify by trying to access a static PNG by a direct URL, rather than going through vBulletin.
Problems can also arise with naming between Windows and Linux.... in windows IMAGEname.png = imagename.png in Linux IMAGEname.png <> imagename.png. That should not really be the issue here but if you have issues with static images it is worth remembering. Check for capitalized file extensions or some such silliness!
I assume you are on Apache, I have never had a configuration issue with Apache and PNG's straight out of the box. If it is Apache's issue your ISP or whom ever did your setup work will likely know exactly where to look.
I just looked at the page with a web proxy. The MIME type is OK. If you look on the full page, there are other PNG files that are being rendered fine. However, attachment.php is returning the file "clear.gif".
Looks like it might be a permissions issue, as Zed said. Apache needs to have write permission for the folder where attachments are stored.
This is a png that I just uploaded. Seems to be working OK. I wonder if it is a file size issue... Doesn't seem to be. I tried one as a pic within the message (above) and the playground png as an attachment.
Check your file sizes -- the max allowed are listed in the upload window.
View attachment 7932
This is a png that I just uploaded. Seems to be working OK. I wonder if it is a file size issue... Doesn't seem to be. Set at 202,400 bytes, and not restricted for any particular group.
If you are over the given file size the sites code tries to resize the file, if the image handling libraries are not loaded in php it will fail right there. So yes file size could be the trigger but the lack of something like the gd library would be the real issue.