CSS Modules are really most at home when using a module bundler like Webpack, and using JavaScript to generate your markup (whether that's in Node or the browser). You can get it to work in other environments, but it might take a bit more work.
In terms of architecture, while you can technically organise your styles however you like, CSS Modules is definitely designed for use within a component system, so a component-focused library like React is a perfect fit.
The other aspect to consider is team size and experience. Even as someone who's been working with CSS professionally, I really enjoy the constraints that CSS Modules forces on me. My appreciation for this reaches a whole new level when I'm working on a team of mixed front-end experience, where team members come and go, and we can't expect that everyone is a CSS architecture expert. CSS Modules has a really great effect of lifting the baseline level of quality within your project, ensuring that your styles can actually be refactored by severely limiting the amount of coupling between components.