Hi Clive,
I am going to suggest (again) the package idxlayout. I am worried
about weird interaction between packages as much as you, but I found
out a good package is often safer that adding several lines of latex
code in the preamble (as you found out). Here is what I use for the
index in my latest book project, the options are self-explanatory:
\usepackage[indentunit=15 pt,%
itemlayout=relhang,%
justific=RaggedRight,%
columnsep=27 pt,
unbalanced=false, %%%% this line produces the balanced columns
initsep=13pt plus 5pt minus 3pt]{idxlayout}
Cheers,
Stefano