I frequently encounter students and new users of ArcMap that are incredibly frustrated because their data isn't cooperating. More often than not their frustration is related to projection compatibility, which is often exacerbated by the lack of metadata to help decipher the projection of each data layer. But there is often confusion over when to use 'Define Projection' versus 'Project' when trying to line up their data.

I like to use the analogy of visiting a foreign country to differentiate between these two tools. Imagining you travel to Spain and never learned any Spanish - it would be difficult if not impossible to communicate using spoken language. If I then just tell you that you can speak Spanish (loudly and convincingly) it won't make the situation any better, you still won't actually know any Spanish. This is analogous to 'telling' data that it has a projection that it doesn't actually have. For example, using the Define Projection tool to tell a shapefile with data stored in the geographic coordinate system WGS84 that is suddenly in UTM NAD27 will not be productive in aligning that shapefile with data that is 'actually' in UTM NAD27. 

However if you travel to Spain with a translator, you will be able communicate with anyone who only speaks Spanish. Similarly, if you translate your data from one projection into another (i.e. - from WGS84 to UTM) using the Project tool, your data will align with data stored in UTM NAD27.

ArcMap will usually warn if you add data with an undefined projection (i.e. - missing a world file, *.prj file, etc) and that is when you should use the Define Projection tool - assuming you have access to metadata that informs you what projection you should use.