Might be an error message or something like that. You're probably not really downloading bytes from the file. Try to read the result as a string to see if it's not an err message. Or try to get the HTTP response code from the WebClient.
This is a bad way to do it, but you should do some error checking like this:
> using (ZipFile zip = new ZipFile()) {
> foreach (KeyValuePair<string, string> i in filesToInclude)
> {
> System.Net.WebClient wc = new System.Net.WebClient();
> wc.Credentials = System.Net.CredentialCache.DefaultCredentials;
> wc.UseDefaultCredentials = true;
> wc.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
> string downloadUrl = SPContext.Current.Site.Url + i.Key;
> AppClass.WriteToLog(string.Format("downloadUrl: {0}", downloadUrl));
> byte[] img = wc.DownloadData(downloadUrl);
> if (!wc.ResponseHeaders[0].Contains("OK"))
> {
> throw new Exception("Unable to donwload the file");
> }
> zip.AddEntry(i.Value, img);
> }
> zip.Save(Response.OutputStream);
> }