Preface: The question sounds as if you're missing a basic understanding for 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 loosly 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 resulation between ~300 and 700 pixels. So roughly what can ge 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 ment to describe interface toward teh 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 fiting interface. Your three examples use different techniques:
A 'real' memory interface on the ZC160, where real RAM is filled by the CPU and outputed via some memory to screen interface
A 'virtual' memory interface on the c-Z80, where a circuitry is mapped into I/O space to take address bus information as text coordinates and data bus content as character to be displayed. How this is done is hidden within the 'VGA' controller, read the AVR.
A single write only port ont the Veronica to send commands to the AVR, which again manages everythin 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 at least the one of IBMs VGA with I/O registers and memory planes - which again can be handles 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 rasonable for most, but the c-Z80 already shows that the address buss 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 wil lbe IN and OUT instructions (if that CPU got 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 for you.
After all, coming up with a clever solution to handle VGA-alike 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 realy start with, a 6502 isn't anithing similar than a Z80 - they both define oposite ways to build a 8 Bit CPU - especially bus wise, as the Z80 follows Intels design, thilw the 6502 features a Motorola bus.
*2 - The AVR on the c-Z80 does only a character based 40x33 display.