Character range generator
From a once over:


As a caller I would rather whether start or end was not a string instead of getting ERROR: start and end must both be Strings!
Indentation! Please consider using something like jsbeautifier
You can merge these

var range = [];
range.push(current); //Put the start directly into the range.


into

var range = [start]; //Begin with the start &lt;- Perhaps too zen a comment

Do not keep commented out code
I cannot understand why you would need 

while(!stringEqual(current.split(""), end.split(""))) {


why can't you simply

while(current != end) {

Also, this, I cant see when you would need this:

if ( typeof item === "number" ) {
    return item++;


Since you verify that both start and end are string, this should never happen?
allAreZ is written in a convoluted way, in this type of function ( small, and dedicated to 1 task), it is appropriate to return immediately. You could try something like 

function allZ( string ) {
    var i = 0;
    while ( i &lt; string.length ) {
        if ( string[i] !== "z" ) {
            return false; 
        }
        i++;
    }
    return true;
}


or, you something fun like this

function allZ( string ) {
    return string.split('z').length == string.length + 1;
}



I am mulling about writing something far shorter with .toString(26) To be sure zzzzzz equals 308915775, that is a lot of entries to store in array, in fact at this point it is silly to store this into an array. You would be better of writing an iterator class which provides a next() function for ranges in that size.



function charRange(start, end)
{
  if(typeof start !=  "string" ){
    throw 'start must be a string';
  }
  
  if(typeof end !=  "string" ){
    throw 'end must be a string';
  }

  var range = [],
      current,
      mapRadix = {},
      mapAlphabet = {},
      a = 'a'.charCodeAt(0);
  
  for( var i = 0 ; i &lt; 26 ; i++ ){
    mapRadix[i.toString(26)] = String.fromCharCode(a+i);
    mapAlphabet[String.fromCharCode(a+i)] = i.toString(26);
  }
  
  function string2Number( s ){
    var i26 = '';
    for( var i = 0 ; i &lt; s.length ; i++){
      i26 += mapAlphabet[ s[i] ];
    }
    return parseInt(i26,26);
  }
  
  function number2String( int ){
    var n = int.toString(26),
        s = '';
    for( var i = 0 ; i &lt; n.length ; i++){
      s += mapRadix[ n[i] ];
    }
    return s;
  }
  
  current = string2Number( start );
  end = string2Number( end ) + 1;
  if( current &gt; end ){
    throw 'start must be smaller than end';
  }
    
  while(current != end ) {
    range.push(number2String(current++));
  }
               
  return range;
}