Why does the GameObject not get destroyed?

The script is fairly simple, but when current health reaches 0, nothing happens.

#pragma strict

var MaxHealth : int = 100;
var CurrentHealth : int;

var Box : GameObject;

function Start () {

	CurrentHealth = MaxHealth;

}

function Update() {

	if(CurrentHealth <= 0) {
	CurrentHealth = 0;
	}
	
	if(CurrentHealth >= MaxHealth) {
	CurrentHealth = MaxHealth;
	}

}

function ApplyDamage (Damage : float) {

	if(CurrentHealth < 0) {
	CurrentHealth = 0;
	}
	
	CurrentHealth -= Damage;
	
		if(CurrentHealth == 0) {
		Destroy(Box);
		}

}

In Update(), add Destroy line:

if(CurrentHealth <= 0) {
CurrentHealth = 0;
Destroy(gameObject);
}

or replace with Destroy(Box)… Not sure how your objects relate with each other.