In my case, because my server and my clients are behind NAT, I fixed the problem of windows XP connection by adding this in the registry :
1. Click Start, click Run, type regedit, and then click OK.
2. Locate and then click the following registry subkey:
HKEY
LOCALMACHINE\SYSTEM\CurrentControlSet\Services\IPsec
3. On the Edit menu, point to New, and then click DWORD Value.
4. In the New Value #1 box, type AssumeUDPEncapsulationContextOnSendRule, and then press ENTER.
5. Right-click AssumeUDPEncapsulationContextOnSendRule, and then click Modify.
6. In the Value Data box, type one of the following values:
• 0 (default)
A value of 0 (zero) configures Windows so that it cannot establish security associations with servers that are located behind network address translators.
• 1
A value of 1 configures Windows so that it can establish security associations with servers that are located behind network address translators.
• 2
A value of 2 configures Windows so that it can establish security associations when both the server and the Windows XP SP2-based client computer are behind network address translators.
7. Click OK, and then quit Registry Editor.
8. Restart the computer.
This info is available on microsoft support site.