Okay, I figured out what was the problem.
glibc's LC_COLLATE file under /usr/lib/locale/tr_TR
is wrong! And it has been wrong for many years now. And
nobody noticed it. PostgreSQL is innocent here.
I checked it many times over and over again with
test programs and different environment settings and
it is wrong! I will contact glibc team now.
Thanks a lot for help.
Regards,
Nicolai Tufar