I am having this same problem, got under the car and started checking all the wiring going from the starter. There is an aluminum heat shield that sheilds heat from the cadillac converter. well one of the wires from the starter was rubbing against the heat shield and was causing the short. I didnt even repair the wire( I couldnt reach it) I just moved the heat shield up about a 1/4 inch to keep it away from the wire and havn't (knock on wood) had problems since.
I have also done a lot research online, seems that a lot of people have been saying that it could be the starter or the ing. switch too.
Hope this helps