Of course you're right, I tested the whole thing with some different encodings and latin2 was the last one, so it's in the posting.
But even with latin1 I can't get the upper() and lower() functions to work properly, even in psql (with encoding set to latin1).
BTW, I've Kernel 2.4.4, glibc 2.2.