Item value contains only first line of the external script output, even if value type text. If first line of value from external check is empty, item switched to unsupported.
IMHO it should contain full external script output, at least if type of information is text. Full value is important for report. Usually it's not a problem to output only first line by the script itself if the rest is not needed.
checks_external.c, lines 82-84:
/* we only care about the first line */
if (NULL != (p = strchr(buf, '\n')))
*p = '\0';
I think it well be good to add "&& item->value_type != ZBX_TYPE_TEXT && item->value_type != ZBX_TYPE_BLOB" to the "if" condition.