Well you can use /bread to read the entire file into a binary variable and then assign each peice to a text variable from there.

Or you could strip/replace the loose carriage returns in the file and then read it in as usual.

Code:
replace_cr {
  ; Replace all stray occurrences of CR with spaces in the file (doesn't affect CRLFs)
  var %file = $qt($1-)
  bread %file 0 $file(%file) &cr
  var %i = 1, %pos
  while $bfind(&cr, %i, 13) {
    %pos = $v1
    %i = %pos + 1
    ; Ignore if it's part of a CRLF
    if ($bvar(&cr, %i) != 10) bset &cr %pos 32
  }
  bwrite %file 0 -1 &cr
}

strip_cr {
  ; Remove all stray occurrences of CR from the file (doesn't affect CRLFs)
  var %file = $qt($1-)
  bread %file 0 $file(%file) &cr
  var %i = 1, %pos
  while $bfind(&cr, %i, 13) {
    %pos = $v1
    %i = %pos + 1
    ; Ignore if it's part of a CRLF
    if ($bvar(&cr, %i) != 10) {
      bcopy -c &cr %pos &cr %i -1
      %i = %pos
    }
  }
  write -c %file
  bwrite %file 0 -1 &cr
}


Warning: Both of the above aliases overwrite the original file with the new one.