$dll can already return text containing multiple lines, however they cannot be sent all at once by /msg, /say, or any other output command.

Prseumably your current code is something like this:
Code:
msg #channel $dll(somedll.dll, Command, parms)


All you have to do is change it to:
Code:
var %dllvalue = $replace($dll(somedll.dll, Command, parms),$crlf,$lf)
var %i = 1, %t = $numtok(%dllvalue, 10)
while %i <= %t {
  msg #channel $gettok(%dllvalue, %i, 10)
  inc %i
}


Spelling mistakes, grammatical errors, and stupid comments are intentional.