Many problems with enemies with character controller.

In editor speeds are different than when the game is compiled. Enemies sometimes walk through walls and fall through the floor. The floors and walls are box colliders with no other code. The enemies only have this code and character controller.

CharacterController c = GetComponent<CharacterController>();  
moveDirection = new Vector3(10,0,0); 
moveDirection = transform.TransformDirection(moveDirection); 
if (gravity < 10000) { gravity += 1000*Time.deltaTime; } 
moveDirection.y -= gravity*Time.deltaTime; 
c.Move(moveDirection*Time.deltaTime);

You shouldn’t have to tell the enemies not to fall through the floor (basically what you’re doing in the controller code is disabling gravity, you can actually do that on the rigidbody with the Use Gravity checkbox). It might be your Fixed Tiime Step is too slow for how quickly your enemies are moving (unlikely), or there are some problems with your rigidbody or collider settings. Are you getting any errors when you run your game that might give some clue as to what’s going on?