In SQL Server 2008 SP2 the simple fix we used in the end was to add the DROP_EXISTING = ON option to the CREATE index clause of the new index we were adding...
-- START: [IX_BaseTable] recreation
-- NOTE: In order to recreate the [IX_BaseTable] index, it is necessary to utilise the
-- DROP_EXISTING = ON option in the create clause, otherwise it complains of
-- existing foreign key constraints that make use of it, and you have a complaint saying...
-- "An explicit DROP INDEX is not allowed on index 'dbo.BaseTable.IX_BaseTable'. It is being used for FOREIGN KEY constraint enforcement."
CREATE UNIQUE NONCLUSTERED INDEX [IX_BaseTable] ON [dbo].[BaseTable]
(
[ID] ASC
)
INCLUDE ( [Column1],
[Column2],
[Column3]) WITH (STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = ON, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
This way we no longer received the DROP INDEX not allowed error message.