huh, somehow I submitted this before I was done, sorry bout that.
IDLE (the shell, not the text editor) doubles the indentation when in nested statements.
For instance
while True:
while True:
while True:
becomes
>>> while True:
while True:
while True:
backspacing removes all 8 spaces as well, so once I'm nested that far I have to manually indent.

I don't think this is specific to IDLE; it also happens when launching the python interpreter directly from a terminal on OS X or Linux. (BTW, what platform are you on?)
As far as I can tell, the TAB character is simply advancing to the next tab stop; those tab stops are determined by the terminal, and can be controlled with the 'tabs' command on Linux. Though if you're using the readline library, that seems to override or reset the tab settings somehow.

Mark: customizing tabs to be anything but 8 spaces is inadvisable with Python, because Python always parses them as 8.
Sooner or later one would mix tabs and spaces and the result would be really painful to debug.