I have separate instances for dev vs. prod so I don't use schemas for that.
I do use schemas for ETL staging tables and table backups that I sometimes do as part of an ETL to make troubleshooting/rollback faster.
On our website database though, I've started using schemas in a couple of ways, mainly permissions related:
1. A 'reports' schema, so that SSRS has execute rights on all the report stored procs, without having any execute rights on anything else. Saves me having to grant permissions on a stored proc by stored proc basis (or granting SSRS rights to more than it needs).
2. An 'internal' schema, to differentiate between tables provided to the website from our internal systems vs. tables the website itself generates data for. This allows me to prevent the web developers from changing data in these tables as part of a hotfix, and then wondering why the change was lost when the table next synced. At the very least they know the data is coming from somewhere else.