A couple of work colleagues had a problem when using SSIS yesterday which took a bit of working out so I thought I'd share it here, it'll be useful for anyone else that has the same problem.
It was all to do with calling .Net assemblies (i.e. DLLs) from the SSIS Script Task. The assembly in question was basically a proxy to a web service however it took its configuration (i.e. the location of the web service) from a configuration file. The problem was that we couldn't figure out where to put the configuration file in order that the .Net engine within SSIS could locate it and use it. Hence, whenever we ran the script task we got this problem:

Just for the benefit of anyone searching for this on the web, here's the text in that message box:
Could not find default endpoint element that references contract 'contract name' in the ServiceModel client configuration section. This might be because no configuration file was found for your application, or because no endpoint element matching this contract could be found in the client element.
Eventually the guys managed to find the solution. As many of you will surely know the executable that runs SSIS is dtexec.exe which, if you accept the default installation, you can find at %ProgramFiles%\Microsoft SQL Server\90\DTS\Binn. In there you'll also find a file called dtexec.exe.config which invariably looks like this:
<configuration>
<startup>
<requiredRuntime version="v2.0.50727"/>
</startup>
</configuration>
Now, someone who knows more about .Net than I do can probably give you a textbook definition* of what that file does (I guess it'll talk about the CLR and AppDomains and similar such stuff) but essentially all we had to do was place the configuration for our assembly into this file like so:
<configuration>
<startup>
<requiredRuntime version="v2.0.50727"/>
</startup>
<system.serviceModel>
<bindings>
<!-- Removed for conciseness-->
</bindings>
<client>
<!-- Removed for conciseness-->
</client>
</system.serviceModel>
</configuration>
and hey presto, it worked!
Don't forget that you'll also need to make the same change to dtsdebughost.exe.config if you're running such a package from BIDS and also to dtshost.exe.config if your package is being called via the Execute Package Task in another package which is called from BIDS (read that slowly a few times - it'll make sense eventually).
Hope this helps!
-Jamie
*If anyone can furnish me with a textbook definition then please stick it in the comments section below.