At first glance this should be enough within your class'GrazaBombProjectile':
simulated function HitWall( vector HitNormal, actor Wall )
{
Explode(Location, HitNormal);
}
simulated function ProcessTouch( actor Other, vector HitLocation )
{
Explode(Location, vect(0,0,1));
}