Its good to see westfw and John_Ryan reinforcing the importance of clarity in statements about compatibility.
This thread started because a user of my graphics LCD library found it wouldn't work on the ATmega644 chip. The library uses direct port IO because it would be about 100 times slower if it used digitalWrite in drawing pixels. Because the 644 chip maps arduino pins to different registers than the 168, the code doesn't work as is on that chip.
Its not difficult to change the code if one knows the mapping, and I think any site promoting 'compatible' hardware should provide guidance on relevant differences and what is (and is not) likely to work without modification.
I have looked at the changes needed for the GLCD code and will update the library when it is tested with the ATmega644. I am compiling a table showing the differences in pin and register mapping between the 168 and 644 and will post that here and make it available to the sanguino people. I expect they will also make this information available on their site.