It's not a bug, it's merely a case of integer overflow.
If you need your number-in-string value to max out, you should add code to do that, either when you do the insert, or as a trigger.
See http://dev.mysql.com/doc/refman/5.0/en/type-conversion.html for more information.
You can also experiment with small selects (untested, I don't have MySQL access here):
SELECT CAST('2123456789012345678' AS INT(11)) SELECT CAST('21234567890123456789' AS INT(11))