Is a Creeper's blast radius affected by the surrounding material?

The Minecraft Wiki article was updated with even more in-depth information on explosions:

Steps for calculating what blocks get destroyed:

  • Start linearly in the direction from the explosion point to each of 1352 points that uniformly distributed on the surface of a cube centered at the explosion with an edge length of 2.
  • Let blast force on each line equal the explosion power multiplied by a random number in [0.7, 1.3].
  • Check current block every step of 0.3. A non-air block absorbs (blockResistance / 5 + 0.3) * step of the blast force; if the blast force is not completely absorbed, the block is destroyed (air blocks can also be marked as destroyed).
  • The blast force is attenuated by step * 0.75 each step, if the blast force is completely absorbed or attenuated, perform the same process on the next line.

The maximum travel distance in the air of a TNT explosion is 6.9, 5.1 for a Creeper explosion, and 1.5 for a fireball explosion. For example, a TNT explosion can destroy a torch 7 blocks away. The minimum block resistance required to absorb maximum blast force of TNT explosion (with at least attenuation of 2 steps) is 77.67, 63.5 of Creeper explosion, 20.17 of fireball explosion. So water, stationary lava, obsidian, and bedrock are always indestructible, and furnaces and less resistant blocks can be destroyed by fireballs.

There's also a list of every block in the game with it's explosion resistance, but it would probably look horrible copy and posted in this answer.