Martin, I think that Glenn was talking about a limit in the maximum number of rows for the table, as it can be set in MySQL when you specify the MAX_ROWS table option when you create a table, and not about row size. And...
1) Yes, there is a maximum row size in MySQL (64KB), as there is normally in any database:
"The maximum size of a row in a MyISAM table is 65534 bytes" from http://dev.mysql.com/doc/mysql/en/Storage_requirements.html
2) Anyway, there are column types that allow up to 4GB in size (BLOB and TEXT), wich are exceptions to the 64KB limit distributed across all columns in a row, as seen in the same MySQL manual page.
3) There is also a limit for any table size. "The table is full when..." "you are using ISAM or MyISAM tables on an operating system that supports files only up to 2GB in size and you have hit this limit for the datafile or index file". There is also a MySQL limit of 4GB per table. Take a look at http://dev.mysql.com/doc/mysql/en/Full_table.html
Glenn, take a look at that man page, since there are other posible causes of the problem. Perhaps one of them is yours.
4) In Moodle, it never minds, since all the Assignement submisions are stored outside of the database, in the filesystem, at the moodledata directory (such as ~/moodledata/$COURSEID/moddata/assignment ). The only column allowed to grow big there is the "comment" one. (TEXT). The submission table ( mdl_assignment_submissions ) has a row size of just 89 bytes. So, providing it does not have any MAX_ROWS limit (as I think it is so), you could have 24,129,029 rows in it. This is for ALL the courses in your Moodle server, but... I think it is enough!
Take special care in point 3). Hope all this helps.