I used InitialCollisionDetected initially but when the collision of the fireball entity collides with the static mesh, the game crashes. It highlights the error on my space.update(); . Why is that the case?
The ability to remove deferred event creators, like entities, was actually implemented in the development version, which you can grab here:
http://bepuphysics.codeplex.com/SourceC ... evelopment
I assume you were using the latest stable release, which did not support it (sorry, I forgot to mention that

).
Also, i tried playing around with the collision rules.. but I don't see how that can help me achieve what I'm trying to do.. As i mentioned before, i don't want it to collide with the caster who summoned the spell but i still want the caster to have collision rules in order to collide with the environment as well as enemy's fireball.
Collision rules can be used to describe interactions between specific objects and groups of objects, not just a personal state. The CollisionRules object contains Specific, Personal, and Group properties.
-The Specific property allows you to define relationships between specific objects (like a single fireball and its creator). The CollisionRules.AddRule static method offers a shortcut to easily adding pair rules between two objects.
-The Personal property can be used to create objects which behave in the same way with every other object (unless overridden by a Specific rule).
-The Group rule can be used to specify the way groups of objects interact with other objects. Like Player1CharacterGroup, Player1SpellProjectilesGroup, Player2CharacterGroup, Player2SpellProjectilesGroup, etc. You can define Player1CharacterGroup to not collide with Player1SpellProjectilesGroup, and Player2CharacterGroup to not collide with Player2SpellProjectilesGroup, and so on.
The documentation page goes through this in more detail and has a link to a sample.