They might have unintentionally got their mobiles set not to disclose their number - I did that once (don't know how, must have pressed a wrong button when doing something else) and confused lots of friends by showing up as an unknown number.
Were they ringing from mobiles or landlines. Sorry, it was unclear.
I use 1899.com for most outgoing calls. Sometimes that shows my landline number as 01xxxyyy645 other times as +441xxxyyy645 sometimes as "International" and other times as "Unknown".
1899.com is a cheap ("indirect access") calls service where I dial a prefix and then the number I was. IE 1899 + 01xxxyyyzzz or 1899 + 07xxxyyyzzz for a mobile. Lots of other firms exist (18866, 18185, etc) which offer cheap calls.
1899 charges me 5p for the call to a UK 01/02/03 number, whether it is 5, 25, or 200 minutes... they send the call wherever they want for cheapness, hence the different numbers someone I call might receive via caller display.
In most cases (on a mobile or landline) your phone might use only the last few digits to identify the caller from your address book.
However, I normally store (mobile) numbers as 07xxxyyyzzz but incoming calls may (even when made in UK) show up as +447xxxyyyzzz and I think some phones will not "match" that with the number I have saved in the phone.