Spice was absolutely designed to simulate integrated circuits. This was even its whole initial purpose. SPICE = "Simulation Program with Integrated Circuit Emphasis".
DIfferent Spice-based simulators have different performances. Some high-end commercial ones, highly parallel, are pretty fast and can be used reasonably to simulate relatively complex circuits.
NGspice is rather good, but not the fastest out there. It can certainly be used to simulate large designs. It may take time.
Regarding purely digital circuits, you need to know that most Spice-based simulators these days, including Ngspice, support mixed-signal simulation. So, unless you have very specific reasons for simulating digital circuits down to the transistor level, you can simulate the digital parts of a circuit purely with digital simulation, which interfaces seemlessly with the analog simulation and is MUCH faster.
I suggest reading Ngspice's documentation, particularly its support of Xspice and Cider. Note that LTSpice also has a mixed-signal simulation engine.