Yep, definitely a pixelformat issue

.
You'll (optionally) also want to make sure it's Grayscale, but most importantly, that it's *NOT* indexed (which is highly counter intuitive, since ideally you do want to dither to the proper 16c color palette, but you just can't encode it paletted ;p).
With such a simple color palette in your example, CS3 might be automagically optimizing the PNG to an indexed format, which in every other circumstances would be a great idea, but not here

.
Whether there's an alpha channel or not is irrelevant, that should (generally) work, it will just produce garbled output if you read in Landscape.