Well, adapting a basic file download script isn't that difficult no, the one below fits on 30 lines.
But it doesn't handle frames, redirects, style sheets, images, cookies, error codes, logins, posting information, and probably much more. You don't need that? Note it doesn't handle anything else than the cnn homepage, no other sites, no other pages on the cnn site, just that one page.

Ok, then let's look at useful stuff: usually people want to get the headlines or something from that site. Since even this cnn homepage contains lines way longer than 920 bytes, you can't just use %vars. Not that it would matter, there's no real guarantee the headline is on a single CRLF delimited line, HTML doesn't care about those linebreaks. So you have to hope the entire headline (or starting delimiter that uniquely identifies the headline you need) fits in about 500 bytes, then you can keep a 800 byte buffer and update it each tme by deleting the first 200 bytes and reading in the next 200 bytes and then checking again for the presence of that identifier, etc. It's possible yes, but it's more scripting. It hopefully also includes some regex, because else it's gonna be a long script with lotsa iswm or wildtok checks...

Also, if the server doesn't want to give you plain text, but uses chunked-encoding, you've got more scripting to do, the kind that isn't fun. And we'll just skip gzip or deflate encoding...

So, basically you needed to know about the HTTP protocol, how sockets work, how they work in mIRC (yes that's different), normal %vars and their limitations, &binvars because of those limitations, regex, basic HTML, file commands (/fwrite), custom windows, and some basic mIRC scripting too smile

for reference...
Try to use /fopen and /fwrite to write stuff to a file instead of a custom window and notice your browser will still need to get about everything from the site anyways
Code:
alias cnn {
  window @cnn | clear @cnn
  sockopen cnn www.cnn.com 80
}
on *:SOCKOPEN:cnn: {
  if ($sockerr) return
  sockwrite -n $sockname GET / HTTP/1.0
  sockwrite -n $sockname Host: www.cnn.com
  sockwrite -n $sockname Connection: close
  sockwrite    $sockname $crlf
}
on *:SOCKREAD:cnn: {
  if ($sock($sockname).mark) {
    sockread 100 &data
    while (($sockbr) && (!$sockerr)) {
      echo @cnn $bvar(&data,1,101).text
      sockread 100 &data
    }
    return
  }
  var %data
  sockread %data
  while (($sockbr) && (!$sockerr)) {
    if (%data == $null) {
      sockmark $sockname 1
      return
    }
    sockread %data
  }
}