I don't think the engine can distinguish between floor or walls, how is that supposed to work? The engine can distinguish between the different classes of objects liks TSStatics, ItemData, Terrain, Player etc and do something different on collision then. Buildings, walls, floors, ceilings etc in most cases will be TSStatics.
So you have to add code yourself that can distinguish between those objects.
There is a resource that implements different behavior of bullets when hitting different materials, if that is enough for you, you can implement that resource: http://www.garagegames.com/community/re ... view/18147
But maybe you are thinking too complicated, since in reality no grenade exists that can detect what it hits, so maybe think of something other as a solution. I think you can already distinguish in the engine between static shapes and players or vehicles, so it should work that you can make it only explode when it hits a target like a player or vehicle.
The current grenade from the grenade launcher in Torque3D has an arming delay so everything it hits under that delay it will bounce off, after that explode, I think it should be good enough for your case if you adjust it well, it will then not explode on timeout, but when it hits something and is armed.