gizmobabe: you will have received a letter detailing your contract.
That is not the same as agreeing to the details though.
12 month contracts are more common than 18 month contracts.
Unless op actually agreed, in one form or another, to the contract lasting 18 months, then he cannot be held liable until August. Some contracts are for 12 months and then roll on on 30 day notice after than, other contracts need renewing every 12 months. If BT are only saying now that it is an 18 month contract, then that is not acceptable. The term should have been stated and agreed at the outset otherwise it is unenforceable.
For a contract to be valid, it must be agreed, in one form or another, by both sides. If the 18 month term was agreed, then a cancellation fee should be paid. If it wasn't agreed, the fee should not be paid.