Doh!!! I take that back, Char is a fixed length upto 255... Well, both of them are variable length (as you said). Both of them are case insensitive unless you use the binary option. The differences as listed in the docs are as follows:
-You can have indexes on TEXT columns with MySQL Version 3.23.2 and newer. Older versions of MySQL did not support this.
-There is no trailing space removal for TEXT columns when values are stored as there is for VarChar.
-Text columns cannot have DEFAULT values.
So there you go. No default and No trailing space removal. So if you save a string such as:
"This is some text "
Varchar will store it as
"This is some text"
while TinyText will store it as
"This is some text ".
Hope that helps,
Richard