I frequently find myself in the situation that I have an item that is marked for moving to a stockpile which I want to use instead for some other task. For example, I've just made some coke, and I want to use that coke to run a forge, but the coke is marked for transport to my bar/block stockpile, so I can't use it until it's moved to the stockpile. Or I put a pump in the wrong place; I can deconstruct the pump, but until its component pieces have been put back in the relevant stockpiles, I can't use the pump.
The really annoying thing about this is that there tends to be dozens of move-to-stockpile tasks ready at any given time, so it frequently takes a very long time for my dwarves to get around to moving the stuff I actually care about. The only recourse I have is to remove the relevant stockpile, queue up the construction/crafting task, and then re-create the stockpile, which has the obviously undesirable side-effect of canceling all the other move-to-stockpile tasks I have queued up that I actually want finished. . The ideal behavior would be that move-to-stockpile jobs wouldn't claim items until a dwarf takes the task. At that point, if the item isn't available any more, the job should be cancelled.
Edit: note that the task to create the relevant construction doesn't claim the relevant materials until a dwarf takes the task...if I recreate the stockpile before construction actually starts, then the stockpile will claim the item!
[ April 18, 2008: Message edited by: Derakon ]