Look closer at your data.
MSIE 6.0; Windows NT 5.1
Code:
$updatecache["browser_||_$browser[bstring]"] = array($existingcache["browser_||_$browser[bstring]"]['count'], $itemcnt, $existingcache["browser_||_$browser[bstring]"]['cmisc']);
Given your example with multiple MSIE 6.0 entries, how does your code keep a cumulation of those entries?
You do not resolve your IP addresses to countries until you process the cache. So, again, where are your results cumulative for, say, US based IP addresses as you process your cache? (Again, looking at the data I posted, you can see how you only account for a single US ip address per cache processing versus the sum of all US based ips.