While it's certainly something of a defacto standard that tabstops are at 8 characters, I've seen all sorts of places where that's not true. (The only one that comes to mind is a glass tty I used to use where it was ten. Took me days before I figured out some weird-ass tab-related problem. Which is, of course, why I remember it.)

Personally, I don't see the big issue with how many spaces tabs are or spaces versus tabs as long as you're consistent. The only real problem I have along those lines is GNU indenting, where they assume that tabs are 8 characters (despite there being no real standard to that effect) and that they mix spaces and tabs. Personally, I always use tabs to indent, but I make sure to be consistent.

For example, if I have some code that looks like:
Code:

if ( a<b ) {
if ( c<d ) {
if ( e<f ||
g<h ) {
doit();
}
}
}


then I format it like this:
Code:

if ( a<b ) {
ttif ( c<d ) {
ttttif ( e<f ||
ttttsssssg<h ) {
ttttttdoit();
tttt}
tt}
}


Where "t"s represent space taken up by tabs and "s"s represent space taken up by spaces. That way, no matter what you tabstops are set to, it lines up properly, as long as you're using a fixed-width font. The worst that can happen is that the tabs are too wide, but it's easy to ":set tabstop=2" or ":%s/^I/ /g" or whatever the eqivalents might be in your editor.
_________________________
Bitt Faulk