Preface: The question sounds as if you're missing a basic understanding of interfacing and communication between different chips/systems. At the core it can't be answered without a whole course in digital electronics 101. So I can only try to give some hints to understand the various concepts presented.
I've come across a couple of projects that manage to get VGA working with the Z80 and similar CPUs [...] and many others by searching for "VGA + cpuName"
To start with (*1), the term VGA is very loosely used here in describing something with a resolution between 2000 and 500 lines at a line rate of (or near) 31.5 kHz with a horizontal resolution between ~300 and 700 pixels. So roughly what can be displayed on a VGA screen
None of the projects mentioned is using a 'real' VGA as the title of your question may imply. Even more, the term VGA is by no means meant to describe the interface toward the CPU or display capabilities as of a genuine VGA - and especially not tied to the 640x480 resolution that usually is assumed when speaking of a VGA.
What I can't seem to understand is how the various adapters talk with the CPU.
Like always via a fitting interface. Your three examples use different techniques:
A 'real' memory interface on the ZC160, where real RAM is filled by the CPU and outputted via some memory to screen interface
A 'virtual' memory interface on the c-Z80, where circuitry is mapped into I/O space to take address bus information as text coordinates and data bus content as characters to be displayed. How this is done is hidden within the 'VGA' controller, read the AVR.
A single write-only port on the Veronica to send commands to the AVR, which again manages everything on its own - just this time with some external memory to store high resolution graphics (*2)
It is easy to think of many more interfaces, not least IBM's own VGA with I/O registers and memory planes - which again can be handled via a quite varying style of interfaces. After all, that's what a system designer does: inventing interfaces between chips to get the job done.
Does one use the INT and/or IOREQ pins?
None of these, but again, it can be done if it fits the design.
Might be reasonable for most, but the c-Z80 already shows that the address bus can be used as well - or even instead.
Is most of the talking through assembly code using the IN and OUT commands?
If the video interface is located in I/O address space then it will be IN and OUT instructions (if that CPU has some, that is). If it's in memory address space, then it will rather be a series of store (and maybe load) instructions. Whatever fits the interface.
Bottom line: There is no general description how all thinkable video interfaces work. You need to look at each and figure it out - and then decide if it's the right one for you.
After all, coming up with a clever solution to handle VGA-like output on a rather restricted 8-bit system is the real fun about designing such a system - that's what tickles the engineer sense of a hardware nerd.
*1 - To really start with, a 6502 isn't anything similar to a Z80 - they both define opposite ways to build a 8 Bit CPU - especially bus wise, as the Z80 follows Intel's design, while the 6502 features a Motorola bus.
*2 - The AVR on the c-Z80 only does a character-based 40x33 display.