MS FAT-based filesystems have a limit to the number of files that can be stored in the root directory (a few hundred IIRC), and because of the way long filenames are stored file/directory names longer then the traditional "8+3" wil consume more then on of the entries in the limit.
For subdirectories FAT32 allows ~65,000 entries per sub-directory (again, long filenames take more than one slot), I'm not sure about the older FAT16. Other filesystems have similar limits (ext2/3 has a 32,000 entry limit without certain tweaks) some do not or effectively do not (NTFS allows ~4,000,000,000). You will hit performance issues on some filesystems long before you hit the limit of entries per directory, as some search directories linearly (FAT* do, ext2 does, ext3 does unless you specific indexed directories, ext4 and NTFS do indexed directories by default IIRC).