You do need a second VBO that contains the indices whether the other mesh components have been interleaved or not. This is because indices are special and when buffering, you must use GL_ELEMENT_ARRAY_BUFFER_ARB instead of GL_ARRAY_BUFFER_ARB.
As for the 3rd question, if the entire buffer changes, use glBufferDataARB, if only a certain known portion of the VBO changes, then use glMapDataARB. But there is no need to create a VBO every frame, but you do need to bind it everyframe.
DP