ASP.NET MVC cannot use web controls that rely on postbacks, whereas WCSF can.
You should think of WCSF as guidance about how to use the existing WebForms infrastructure, especially introducing Model-View-Presenter to help enforce separation of concerns. It also increases the testability of the resulting code.
You have more control over the urls in an ASP.NET MVC site as opposed to a WCSF site.
If you can target 3.5 SP1, you can use the new Routing system with a traditional WebForms site. Routing is not limited to MVC. For example, take a look at Dynamic Data (which also ships in 3.5 SP1).
An ASP.NET MVC site will probably be easier to test than an equivalent WCSF version.
This is true because it uses the new abstractions classes for HttpContext, HttpRequest, HttpResponse, etc. There's nothing inherently more testable about the MVC pattern than the MVP pattern. They're both instances of "Separated Presentation", and both increase testability.
It seems that the WCSF still uses the code behind to control UI events under some circumstances, but ASP.NET doesn't allow this.
In Model-View-Presenter, since the outside world interacts with views (i.e., the URL points to the view), the views will naturally be responding to these events. They should be as simple as possible, either by calling the presenter or by offering events that the presenter can subscribe to.
Model-View-Controller overcomes this limitation by having the outside world interact with controllers. This means your views can be a lot "dumber" about non-presentation things.
As for which you should use, I think the answer comes down to which one best suits your project goals. Sometimes WebForms and the rich third party control vendor availability will be preferable, and in some cases, raw simplicity and fine-grained HTML control will favor MVC.
In general, no, that's not how the pattern(s) work. The Model is the reusable portion, and the combination of V + C/P comprise the application layer, and therefore are application-specific by definition.
If you have logic in your presenters that seems like it should be reusable across different applications, you should look at how you can push that down into your domain layer, and make it part of your Model.
This is one of the best articles on the subject.
Best Answer
Web Client Software Factory
alt text http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=websf&DownloadId=3727
From here
Edit:
There is a similar article here in SO.
Is .NET WCSF the way to go?