<p>If the amount of data stored within a given field of a database is unknown, and could be very large, should I store it in an external file rather than within a field in the database?</p>

That's why BLOB or Memo field types were designed.  They are very good at storing variable length / large objects.
That being said, I would still store certain large objects using the file system instead of using a database.  If the objects were very large (multi-MB each) I would consider just placing them on the file system and storing a pointer (filename) in the database.