I put together a sample for this a few months back:
HAXX0RZ This works for me where blue is the player and Sprite 2 is a block with solid behavior:
<img src="https://dl.dropbox.com/u/10285716/SamplePushBlock.png" border="0" />
I added a P key is down condition just because I wanted to differentiate between pushing the block and running into it randomly. You can remove that...
Another option is to detect your criteria, like on floor, next to wall (block), and the push button held down, and then pin the block to the player. When they release the "push" button unpin the block.