It is not good idea in case you have foreign keys from one table to another, because then if you want to restore, it will throw exception everywhere you forgot to add a check.
And it is okay to have soft delete by default and then if the law requires to completely delete the data from everywhere.
@SmokeTM if the foreign keys on your database are set to cascade every related data, then yes, you can delete them from one place. But you should also consider adding that feature. And then if I say to soft delete by default depends on you more than on me, is there any chance that the client would like to restore their data in your software? Then yes, soft delete them.. but if not, then just delete them and keep your database light :)