Why are all Drupal mails going to spam folder wheter it is reset password mail, account activation e-mail etc.?
This is not a technical sure fire solution. There can't be a sure fire answer either, because spam detection algorithms are different, even if the recipient mail server had same software, per-account activity and a lot of factors can be used to decide whether the email is spam or not. 

There are some steps I take for every site before going them live. 
The obvious one is to not send spam content in first place, but other than the content itself, there are other ways to convince the recipient you are not spamming. 


Setup SPF records for your domain. The spec is easy to understand, and there are tools to generate the record too. You need to make sure you only send emails from the correct IP addresses only. 
Install MimeMail module. This is probably overlooked, but Drupal default mail class sends emails using php's mail() function directly. Mimemail does this too, but it adds extra headers and better mime information. All modules using drupal_mail to send emails will be instantly compatible with the module. 
Think about going to a meeting with a basic dress vs a complete suit. 


Mimemail trick is the most effective one I've tested.