Index: wp-includes/user.php
===================================================================
--- wp-includes/user.php	(revision 17165)
+++ wp-includes/user.php	(working copy)
@@ -465,11 +465,11 @@
 
 		$search = trim( $qv['search'] );
 		if ( $search ) {
-			$wild = false;
-			if ( false !== strpos($search, '*') ) {
+			if ( is_multisite() )
+				$wild = ( false !== strpos($search, '*') );
+			else
 				$wild = true;
-				$search = trim($search, '*');
-			}
+			$search = trim($search, '*');
 			if ( false !== strpos( $search, '@') )
 				$search_columns = array('user_email');
 			elseif ( is_numeric($search) )
@@ -564,19 +564,24 @@
 	 *
 	 * @param string $string
 	 * @param array $cols
-	 * @param bool $wild Whether to allow trailing wildcard searches. Default is false.
+	 * @param bool $wild Whether to allow wildcard searches. Default is false for multisite, true for
+	 *  single site. Single site allows leading and trailing wildcards, multisite only trailing.
 	 * @return string
 	 */
-	function get_search_sql( $string, $cols, $wild = false ) {
+	function get_search_sql( $string, $cols, $wild = null ) {
 		$string = esc_sql( $string );
 
 		$searches = array();
-		$wild_char = ( $wild ) ? '%' : '';
+		if ( null === $wild )
+			$wild = ! is_multisite();
+
+		$trailing_wild = ( $wild ) ? '%' : '';
+		$leading_wild = $wild && ! is_multisite() ? '%' : '';
 		foreach ( $cols as $col ) {
 			if ( 'ID' == $col )
 				$searches[] = "$col = '$string'";
 			else
-				$searches[] = "$col LIKE '" . like_escape($string) . "$wild_char'";
+				$searches[] = "$col LIKE '$leading_wild" . like_escape($string) . "$trailing_wild'";
 		}
 
 		return ' AND (' . implode(' OR ', $searches) . ')';
