Best option would be particle effetcs.
You could put an env_sprite over the cube, and quickly turn it on and off. When you do that , that's when you could switch the cube. You could also crete a custom particle system and do that. (I have no idea how though.)
Followup question: The only way I could get this to work is with templates and env_entity_maker (i believe it is), and those don't have parenting features, neither does the cube I am using as a template. Would it be possible to keep them together somehow?
You may be able to use a phys_cpnstraint attached to both cubes, and somehow make one visible and one not. It may be a tad unstable, but you MAY be able to do the same with env_entity_makers.
Env_entity_makers can be parented (point_templates can't). What you should probably do is turn on the sprite/particle effect, ClearParent the env_entity_maker, Kill the first cube then ForceSpawn the second and then Kill the env_entity_maker (with a 0.01s delay between each). Finally turn off the particle effect so the player can see the new cube.
I believe I still need the point template, and when it is not in the same area of the cube, the entity that is created is in the void (I assume)
You want to have a point_template (not in the void to stop it leaking), just put it in the middle of the cube you are using as a template.
I know that, but what if the player were to move the cube, before it was activated.
That would be okay. As Teamspen said, env_entity_makers can be parented.