Abbreviations expand into a single output. TextMate Snippets expand that output and then make it trivial to move between the parts you'll want to customize.
So a 'for' abbreviation would output:
for (;;) {
}
and leave the cursor after the }.
A 'for' snippet would output the same thing, but you could bounce on the tab key to move between the three parameters to for, the body of the loop, and the line after the loop.
vim-latexsuite does something similar for creating environments. The default is Ctrl-J for jumping to the next section that needs to be filled in. The procedure takes some getting used to; I didn't like it at first.
So a 'for' abbreviation would output: for (;;) { } and leave the cursor after the }.
A 'for' snippet would output the same thing, but you could bounce on the tab key to move between the three parameters to for, the body of the loop, and the line after the loop.