Puedes encontrar esto en la ayuda del comando xp_cmdshell:
Cita: Permissions
Execute permissions for xp_cmdshell default to members of the sysadmin fixed server role, but can be granted to other users.
Lo que imagino que si puedes hacer es meter la llamada en un stored procedure y dar permisos de ejecución al stored (aunque nunca lo he requerido)
Código:
CREATE PROCEDURE misp(
@directorio nvarchar(50)
)AS
EXEC xp_cmdshell 'DIR ' + @directorio
Y desde el otro usuario llamarlo con algo como (con permiso sobre el SP)