Multiple Websites that share some content types and not others

That’s a pretty lengthy question, so I try to be brief and still hit all your points. If nothing else, maybe someone else can improve on what I suggest.

Does it do it out of the box? No

It does however have the ability to do the things you’ve asked “out of the box”, it’s called the WordPress API (if you’re going to be hosting several website around the world I suggest you or someone on your team take the time to learn this. Hacking the core files is a short term solution at best, in my experiences you’ll end up with one hack after another to fix the newest incompatibility issues caused by WordPress updates, or you’ll neglect to update the core so your many sites don’t break. Neither is acceptable since it will cause security issues, slower sites, and a HUGE HEADACHE for whoever has to sort it out).

What plugins will I need? Depends…

There’s more than one way to do what you’ve asked. For that reason it’s impossible for me to answer that. Some try too had to not use plug-ins while others turn to plugins for everything. My suggestion is to weigh the specific purpose of the plugin. If it can be achieved fairly easy with your knowledge of WordPress then do it yourself. If it’s something that will take a lot of time, and there is an existing plugin that’s been developed I’d use a plug-in. It doesn’t make sense to waste time re-inventing something that someone or a group of developers have contributed time, troubleshooting and worked out the kinks. That’s one of the benefits of WordPress and Open Source, you can simply download/install a pllugin if it meets your needs which allows us to build sites quicker and in turn charge less to the clients if so inclined.

do I need to build my own plugins?

See previous answer

do I need to modify the core code? Nein, Non, Iya, Nope

As I’ve mentioned this will never be a good solution.

2 content-types
This can be achieve using the WordPress core functions. Have a look at custom post types, taxonomies, tags, and Categories.

Once you’ve decided which way you’re going to go, you can use a common functions.php file for the sites. Maybe even a common theme for them if the layout will be similar. You can use the same theme files and adjust the CSS to keep from repetitive coding.

Projects

As for using the same post (what I’d use for Projects since they’re better suited), I haven’t actually needed to do this for anyone yet, so I just make a suggestion. This might be one of the cases I spoke of which a plugin will benefit you. You could use the RSS import feature built into WordPress to display the posts on multiple websites. Have a look at this one, it’s been downloaded almost 100,000 times and was last updated on 2012-4-24 (a good thing to check when using plugins): RSS Import

That should give you a good start. Once you’ve narrowed down your options and have better direction you can always post questions here for quality advice. Good Luck,