Why do your NPCs have kinematic rigidbodies? They should be non-kinematic since they're actually moving. Moreover, your setting won't detect any collision, since static colliders (as you have your walls) won't collide with kinematic rigidbodies with colliders. Setting your NPCs as Rigidbody colliders will stop them to walk through them, as well.
http://docs.unity3d.com/Documentation/Components/class-MeshCollider.htmlYou can as well detect collisions based in layers, so your walls can detect whether the collider object is a player, or NPC, or foe, or whatever category you might want.
http://docs.unity3d.com/Documentation/Components/LayerBasedCollision.htmlFor the waypoint... Rudimentary, just wait until collision, then just turn back at any rotation backwards (so you can give it some randomness), and have your NPC to walk that direction. You might want to randomize your rotation as well at some times while walking. Or, you can follow jeanfabre's suggestion and look for a pathfinding framework.