It is important to distinguish a supply of services from a contract of service, the latter being an employment contract.
The latter has tax implications, which neither party will want if the consultant or contractor is self-employed, and employment implications which the agency's client will not want - such as the right of an employee to claim for unfair dismissal or redundancy.
The principal test is the extent of the client organisation's control over the contractor. This may not be clear-cut in an IT environment where the contractor may be working on the client’s systems to the client’s quality and assurance standards.
For long-term contracts, it is therefore especially important to differentiate the contractor from the client's employees, by means of the wording in the contracts concerned.
Where an agency is involved, the client's contract will usually be with the agency, not the worker. Any agreement between the agency and the worker will not normally be a contract of employment. The reasoning is largely based on the absence of control. But it is the actual circumstances which count.
There is just one case in which the court decided that a worker under a contract for services with an agency in fact had a contract of employment with the exclusive client he worked for - because of the extensive managerial control exercised by the client in that particular situation. The courts will look for a relationship of employer and employee if there is any ambiguity.