Losing health OnCollisionEnter

Hey!
I have been using Unity3D for a time now and I think it’s great, but I never really got to scripting. So today i started looking at it and learned a lot and I decided to test and train my new “skills” by making a simple game.
I only got to giving the player health until I stumbled upon a problem! So what I’m trying to do is to make it so when the player collide with a gameobject, it loses 1 health. When health reach 0, the level is reloaded. I get no errors, but nothing happens. So here’s the code:

var boxSpeed : float = 0.1;
var charBullet : Transform;
var bulletSpeed : int = 200;
var health : int = 3;
private var death : boolean = false;
private var damage : int = 1;

function OnCollisionEnter (col : Collision)
{
 if (col.gameObject.tag=="Player")
 {
 health -= damage;
 }
}

function Update () 
{
 var horizontalMovement = Input.GetAxis ("Horizontal");
 
 if (horizontalMovement)
 {
 transform.Translate(transform.right * 
 horizontalMovement * boxSpeed);
 }
 
 if (Input.GetButtonDown ("Jump"))
 {
 var bullet = Instantiate (charBullet, 
 gameObject.Find("bulletSpawnPoint").transform.position, 
 Quaternion.identity);
 
 bullet.rigidbody.AddForce(transform.forward * bulletSpeed);
 
 }
 
 if (health == 0)
 {
 death = true;
 }
 
 if (death == true)
 {
 print ("You have lost the game");
 Application.LoadLevel (Application.loadedLevel);
 }
}

Just keep in mind that I’m a noob, not so good at English and probably stupid too!
Thanks!
//Teddy

There is a problem with fast moving objects and collision detection. Does setting the bullet speed very low help? Or make the mesh collider longer. Exaggerate the number to test for result.

Further a good source of information about this can be found here Cheapest way to catch collisions on very fast moving objects... - Questions & Answers - Unity Discussions

EDIT:
Misunderstood the question the first time.

if (col.gameObject.tag=="Player")
 {
 health -= damage;
 }

I think the problem is here, you are applying a damage only if colliding with itself. Give the enemy a tag, like Enemy or something. Then change the code to:

if (col.gameObject.tag=="Enemy")
 {
 health -= damage;
 }

And it is most common to use a capsule collider on the player. Makes for better collision detection and moving without getting stuck among other things.