In OnTriggerEnter, OnTriggerStay and OnTriggerExit collider is always the collider component of the gameobject that entered the trigger. Since there is no actual collision with triggers, no other information is given.
See Unity - Scripting API: Collider
In OnCollisionEnter, OnCollisionStay and OnCollisionExit collision is the collision object that contains information about the collision, for example Collision.collider is the collider of the object that collided with the object the script is attached to.
See Unity - Scripting API: Collision for more.
Example:
We have two gameobjects, named Adam and Bob. Adam has the following script attached to it:
function OnCollisionEnter(col:Collision){
// Name of the gameobject this script is attached to.
var myName:String = transform.name;
// Name of the gameobject we collided with.
var otherName:String = col.transform.name;
print("My name is " + myName + " and I collided with " + otherName + ".");
}
If the objects collide the script will print out “My name is Adam and I collided with Bob.”
If the script were attached to Bob instead it would print “My name is Bob and I collided with Adam.”
Collider refers to the Collider (Box, Sphere, whatever) Component of the triggering object. From there, if you want to refer to the gameObject, you write collider.gameObject.