Francis,
Change line 837 of cgi.rb:
buf = buf.sub(/\A((?:.|\n)*?)(?:#{EOL})?#{boundary}(#{EOL}|--)/n) do
to read:
buf = buf.sub(/\A((?:.|\n)*?)(?:[\r\n]{1,2})?#{boundary}([\r\n]{1,2}|--)/n) do
and you should be good to go. What's going on is that EOL is explicitly "\r\n" (as the rfc says it should be). Mac IE is passing these with some other (MTV Spring?) break instead.
This is fixed in narf too. I should roll out a new release soon.
Cheers,
patrick