You can safely move the mysql_set_charset() call to the ConnectToDatabase() method, or better yet, create a new method for setting up the charset, and execute it upon initialization. Like:
Code PHP:
   public static $charset;
   public static function Initialize($varType, $varHost, $varPort, $varDatabase, $varUsername, $varPassword, $varCharset = 'utf8')
            if (!self::ValidDatabaseTypes($varType))
                  Error::LogError("Database Type Invalid", "Database Type must be one of: " . self::DB_TYPES);
            self::$host         = $varHost;
            self::$port         = $varPort;
            self::$type         = strtolower($varType);
            self::$database     = $varDatabase;
            self::$password     = $varPassword;
            self::$username     = $varUsername;
            self::$charset     = $varCharset;
            self::$savedQueries = array();
            self::$savedResults = array();
            self::$connection   = self::ConnectToDatabase();
     private static function SetTheCharset()
        switch (self::$type)
          case "mysql":
          @mysql_set_charset(self::charset,self::$connection) or Error::LogError("Charset setting", mysql_error(self::$connection));

FYI, if you're trying to be DB agnostic, there's Zend Framework's Zend_Db, as well as PEAR's MDB2. Have you considered using one of those? Personally, I use Zend Framework, and am quite happy with it.