Am I the first one to run across this problem
No, older browsers implemented a split differently when the delimeter was at the start or end of a string. Some kept the empty strings at either end, some kept the final one, some, like IE, only kept empty matches if they are in the body of the string. The modern browsers all keep both outriders.
The simplest way to account for any difference is to make IE9+ act like IE8- look at the first and last elements of the array, and remove them if they are undefined or the empty string.
String.prototype.split8=function(delim){
var A=this.split(delim);
if(!A[0])A.shift();
if(!A[A.length-1)A.pop();
return A;
}