When stacking switches do they have to be running exactly the same version of IOS?
Correct. All the members of the switch stack must and should run the same IOS version (example: 12.2(55)SE1) and should run the same feature set (example: IP Services).
If you have a switch (for example E or X) that runs the "universal" IOS and stacked with switches that can't run "universal" then the "E" or "X" switch should downgrade to the same feature set as the others.
Hope this helps.
Please don't forget to rate our useful posts.